Soap4r と HTTPClient を使用して Web サービスとやり取りしています。サービスは、X509 証明書でデジタル署名されたリクエストのみを受け入れます。秘密鍵を生成し、証明書要求 ( CSR ) を取得し、機関 (Web サービスをホストしている会社) から実際の証明書を取得する手順を実行しました。
これを行う方法の例はありますか?
使用しているWebサービスはWS-Securityを使用しているようです。WS-Securityは、XML署名とXML暗号化を利用してSOAPメッセージを保護するOASIS標準です。ただし、私が知る限り、Soap4rはWS-Securityをサポートしていません。それを自分で実装することは、かなり複雑であるため(そしてXML-Canonicalizationのような厄介なものを伴うため)、かなり絶望的です。
WSO2には、フレームワーク用のrubyバインディング(http://wso2.org/projects/wsf/ruby)があります。おそらくそれを使用できます。そうでない場合は、Soap4rによって作成されたメッセージに署名するために、おそらくいくつかのCライブラリ(libxmlsecなど)をラップする必要があります。それにはrubyバインディング(http://rubygems.org/gems/xmlsec-ruby)がありますが、xmlsecの全機能を公開していないと思います。
これがオプションの場合、Metro(http://metro.java.net/)、Axis2(http:// )などのWS-Securityをサポートする強力なオープンソースSOAPライブラリが多数あるため、Javaでコードを実装できます。 ws.apache.org/axis2/)およびCXF(http://cxf.apache.org/)