我正在评估使用Web服务的savon ……但是如果我可以使用SSL客户端证书来对提供SOAP Web服务的服务器进行身份验证,我就找不到任何信息.我阅读了文档,但没有找到任何相关信息.
有谁知道SAVON是否支持客户端证书身份验证?
问候
FAK
解决方法
Savon的最新稳定版本(此时为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
希望有所帮助!丹尼尔