带有X509证书的Ruby请求

Jon*_*der 5 ruby soap x509

我正在使用Soap4r和HTTPClient与Web服务进行交互.本服务仅接受使用X509证书进行数字签名的请求.我已经完成了生成私钥,获取证书请求(CSR)以及从授权机构(托管Web服务的公司)获取实际证书的步骤.

有没有关于如何做到这一点的例子?

小智 5

您正在使用的 Web 服务似乎使用WS-Security。WS-Security 是一个 OASIS 标准,它利用 XML 签名和 XML 加密来保护 SOAP 消息的安全。但是,据我所知,Soap4r 不支持 WS-Security。自己实现它是非常没有希望的,因为它相当复杂(并且涉及像 XML 规范化这样烦人的东西)。

WSO2 为其框架提供了 ruby​​ 绑定(http://wso2.org/projects/wsf/ruby),也许您可​​以使用它。如果没有,您可能需要包装一些 C 库(如 libxmlsec)来对 Soap4r 创建的消息进行签名。有 ruby​​ 绑定(http://rubygems.org/gems/xmlsec-ruby),但我认为它们没有公开 xmlsec 的完整功能。

如果这是一个选项,您可以用 Java 实现代码,因为它有很多强大的开源 SOAP 库,支持 WS-Security,例如 Metro ( http://metro.java.net/)、Axis2 ( http:// ws.apache.org/axis2/)和 CXF ( http://cxf.apache.org/ )