2011-12-07 16 views
2

双方向SSLが必要なWebServiceにアクセスする必要があります。クライアント(およびそのサーバ)には自己署名証明書があります。自己署名付き証明書を使用した双方向SSLクライアント

私は次のコードを持っている:

System.setProperty("javax.net.ssl.keyStore", "path/myClient.key"); 
System.setProperty("javax.net.ssl.keyStorePassword", "pass"); 
System.setProperty("javax.net.ssl.keyStoreType", "JKS"); 
System.setProperty("javax.net.ssl.trustStore", "path/myClient.truststore"); 
System.setProperty("javax.net.ssl.trustStorePassword", "pass"); 
System.setProperty("com.sun.net.ssl.dhKeyExchangeFix", "true"); 

をそして、私はここから自己署名証明書を受け入れるようにTrustModifierをコピー: http://java.dzone.com/articles/ignoring-self-signed

しかし、それでもまだ、私はに全体を統合することはできませんHttpClientを正常に接続します。

助けが必要ですか?

+0

店舗に証明書がある場合は、TrustModifierを使用しないでください。 TrustModifierは単に証明書のチェックを無効にします。そして、あなたが得ている例外/エラーメッセージを記述してください。 – kan

+0

また、クライアント証明書が自己署名されている場合は、サーバーの信頼設定を変更する必要があります。信頼の設定を緩和するのではなく、自己署名証明書をそれぞれの信頼ストアに明示的にインポートする方が良い場合もあります(そうでなければ、SSLを使用している点はほとんどありません)。 – Bruno

答えて

1

サーバは、サーバ側でハンドシェイクが成功するためにクライアントの証明書も信頼する必要があります。クライアントの証明書をサーバーのトラストストアにインポートします。

関連する問題