带有X509证书的Ruby请求

时间:2010-09-20 20:39:57

标签: ruby soap x509

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

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

1 个答案:

答案 0 :(得分:4)

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

WSO2的框架(http://wso2.org/projects/wsf/ruby)有ruby绑定,也许你可以使用它。如果没有,你可能需要包装一些C库(如libxmlsec)来签署Soap4r创建的消息。有红宝石绑定(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/