2013-04-12 9 views
6

मैं webservices उपभोग करने के लिए savon का मूल्यांकन कर रहा हूं ... लेकिन अगर मैं एसओएपी वेबसाइसेस प्रदान करता है जो सर्वर के खिलाफ प्रमाणित करने के लिए एसएसएल क्लाइंट साइड सर्टिफिकेट का उपयोग कर सकता हूं तो मुझे कोई जानकारी नहीं मिलती है। मैंने प्रलेखन पढ़ा लेकिन इसके बारे में कुछ भी नहीं मिला।क्या सैवन समर्थन क्लाइंट साइड सर्टिफिकेट प्रमाणीकरण

क्या किसी को पता है कि सैवन क्लाइंट साइड सर्टिफिकेट प्रमाणीकरण का समर्थन करता है या नहीं?

सादर Fak

उत्तर

10

Savon के नवीनतम स्थिर संस्करण (2.2.0 इस पल में) वैश्विक विकल्पों के माध्यम से एसएसएल क्लाइंट प्रमाण पत्र का समर्थन करता है। कृपया the documentation में एसएसएल अनुभाग देखें।

यहां कुछ उदाहरण कोड है httpclient संभालने httpi साथ प्रयोग किया जाता है:

savonConfig = { 
    :namespace => "http://...com", 
    :endpoint => 'https://...:557/x/b/c', 
    #:wsdl => 'https://...:557/x/b/c?wsdl', 
    :log_level => :debug, 
    :log => true, 
    :ssl_verify_mode => :none, 
    :ssl_cert_file => 'publicCert.pem', 
    :ssl_cert_key_file => 'privateKey.pem', 
    :ssl_cert_key_password => '1234', 
    :open_timeout => 600, 
    :read_timeout => 600 
} 

client = Savon.client savonConfig 

soapBody = { 
... 
} 


calcResponse = client.call(:charge, :message => soapBody) 

आप एक pfx प्रमाणपत्र/कुंजी फ़ाइल है, तो आप इसे सीधे का उपयोग कर समस्या हो सकती है - तो आप उन्हें बाहर विभाजित करने के लिए चाहते हो सकता है अलग फाइलों में - जानकारी के लिए यह पृष्ठ देखें: Extract public/private key from PKCS12 file for later use in SSH-PK-Authentification

आशा है कि मदद करता है!
डैनियल

+0

बहुत धन्यवाद मिलता है, एहसास हो जाना चाहिए कि उन विकल्पों ग्राहक प्रमाणपत्र के लिए थे (माना जाता है कि वे 'ग्राहक' के रूप में वर्णित नहीं थे)। मुझे लगता है कि आपको इसके लिए httpclient का उपयोग करने की आवश्यकता है ... –

+1

Savon संस्करण 2 में HTTP विकल्प का उपयोग [HTTPI :: अनुरोध] (http://httpirb.com/#requests) बनाने के लिए किया जाता है। तो यह समर्थित है अगर यह एडाप्टर पर निर्भर करता है। – rubiii

1

हम SSL क्लाइंट प्रमाणन के साथ लेकिन एक ही समय बाईपास मेजबान सत्यापन पर काम करने के लिए savon ग्राहक प्राप्त करने की कोशिश मुद्दों कर रहे ....

https://github.com/savonrb/savon/issues/679

client = Savon.client(log_level: :debug, 
log: true, 
ssl_verify_mode: :none, 
ssl_cert_file: (Rails.root + 'signed.cer').to_s, 
ssl_cert_key_file: ('private.key').to_s, 
wsdl: "https://example.com/Service?wsdl", 
endpoint: "https://example.com/Service") 

तरह HTTPI के साथ विफल Wir.dhswir.org (net_http) HTTPI :: SSLError: SSL_read: एसएसएल हैंडशेक विफलता

कोई मो जानकारी नहीं ..

हमने savon 2.2.0, 2.3.0, और 2.11.0 को आजमाया है। थोड़ा अलग त्रुटि संदेशों के साथ।

हम एक ही पीईएम स्वरूपित कुंजी और savon के लिए प्रमाण का उपयोग कर रहे हैं और तुलना करने के लिए यूनिक्स WGET का उपयोग कर रहे हैं। अगर हम --no-चेक-प्रमाण पत्र पारित न wget असफल हो जायेगी, हम जोड़ने लेकिन यदि यह है कि यह गुजरता है और SSL क्लाइंट प्रमाणन कर सकते हैं और उपयोग

wget 'https://example.com/CDC/VaccinationService?wsdl' --certificate=example-int-wi-signed.cer --private-key=private.key -O- --no-check-certificate 
संबंधित मुद्दे