ruby - 带有 X509 证书的 Ruby 中的 SOAP 请求

标签 ruby soap x509

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

有没有关于如何执行此操作的示例?

最佳答案

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

WSO2 为其框架 ( http://wso2.org/projects/wsf/ruby ) 提供了 ruby​​ 绑定(bind),也许你可以使用它。如果不是,您可能必须包装一些 C 库(如 libxmlsec)来签署由 Soap4r 创建的消息。它有 ruby​​ 绑定(bind) ( http://rubygems.org/gems/xmlsec-ruby ),但我认为它们没有公开 xmlsec 的全部功能。

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

关于ruby - 带有 X509 证书的 Ruby 中的 SOAP 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3755305/

相关文章:

windows - 如何将 OpenSSL key 文件导入 Windows 证书存储区

javascript 渲染的 collection_select 输出 HTML 选项标签

ruby-on-rails - Rails 4.0.3 使用 asset_sync 生成不正确的 Assets 路径

mysql - 更新连接表上的列

xml - 为 FedEx Web 服务创建 HTTP Post 调用

java - 为什么我会收到 java.net.SocketException : Connection reset error from web service through SOAP UI and Java client?

java - 如何为 REST Web 服务创建 SOAP 前端

c++ - 如何使用 C++ 从特定文件中提取 X.509 证书(DER 编码)?

node.js - 如何通过 Node.js MongoDB Driver API 将 x.509 证书主题作为用户添加到 Mongodb 3.4?

Ruby on Rails 使用选项卡