我正在評估用於使用webservices的savon ...但我沒有找到任何信息,如果我可以使用SSL客戶端證書對提供SOAP Web服務的服務器進行身份驗證。我閱讀了文檔,但沒有發現任何關於它的信息。SAVON是否支持客戶端證書身份驗證
有誰知道SAVON是否支持客戶端證書認證?
問候 FAK
我正在評估用於使用webservices的savon ...但我沒有找到任何信息,如果我可以使用SSL客戶端證書對提供SOAP Web服務的服務器進行身份驗證。我閱讀了文檔,但沒有發現任何關於它的信息。SAVON是否支持客戶端證書身份驗證
有誰知道SAVON是否支持客戶端證書認證?
問候 FAK
薩翁的最新的穩定版本(2.2.0在這一刻)支持通過全局選項SSL客戶端證書。請參閱the documentation中的SSL部分。
下面是一些示例代碼,假設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
希望幫助!
丹尼爾
我們正在試圖讓薩翁客戶端SSL客戶端身份驗證,但在同一時間旁路主機驗證工作問題....
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 GET請求到wir.dhswir.org(net_http) HTTPI :: SSLError:SSL_read:ssl握手失敗
no moe info ..
我們嘗試了savon 2.2.0,2.3.0和2.11.0。具有稍微變化的錯誤消息。
我們使用相同的PEM格式化密鑰和證書savon並使用unix 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
非常感謝,應該已經意識到,這些選項都對客戶端證書(假設他們不是'客戶'沒有提到)。我認爲你需要使用httpclient進行工作...... –
Savon版本2中的HTTP選項用於創建[HTTPI :: Request](http://httpirb.com/#requests)。所以這取決於適配器是否支持。 – rubiii