2016-03-31 5 views
1

自分で解決できないJavaアプリケーションの証明書に問題があります。Java - 証明書による承認

私が持っている:

  1. 秘密鍵:priv.key
  2. 公開証明書:pub.crt
  3. ALPHA_CA_root.pem - HTTPSを介して通信することを可能にする証明書を。

私はこのようなカールを使用すると、それが動作:

curl -v https://server.com --cert pub.crt --key priv.key --cacert ALPHA_CA_root.pem -H "Content-Type: application/json" -X POST -d '{"json", "jsonContent"}' 

しかし、私はエラーと通信が確立されていない受信キーストアをインポートします。次のように私は、証明書をインポートしています:

openssl pkcs12 -export -in pub.crt -inkey priv.key -out client.p12 -name "sc" 
keytool -importkeystore -srckeystore client.p12 -srcstoretype pkcs12 -destkeystore keystore.jks -deststoretype jks -deststorepass password 
keytool -import -alias gridserverSSL -file ../ALPHA_CA_root.pem -storepass password-keystore keystore.jks 

した後、私は自分のアプリケーション内のJavaパラメータを設定します。

-Djavax.net.debug=ssl -Djavax.net.ssl.keyStoreType=jks -Djavax.net.ssl.keyStore=keystore.jks -Djavax.net.ssl.keyStorePassword=password 

アプリケーションがサーバーとの通信を確立するためにはApacheのHttpClientを使用しています。私のエラーログには、次のようなものがあります。

cause javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 

誰でも手助けできますか?とても感謝しております。

+0

ここでkeystore.jksを入れますか?ファイル名の代わりにあなたのjkへの完全なパスを提供しようとしましたか? – NAIT

+0

私のkeystore.jksは、アプリケーションのメインフォルダにあります。私はあなたが提供したソリューションを試してみますが、私はアプリケーションがキーストアを見ていると思います。アプリケーションのメインフォルダからkeystore.jksを削除すると、エラーログに、アプリケーションがkeystore.jksを見つけられなかったというメッセージが記録されます。 – user6140709

答えて

0

ステップ(3)の証明書が明示されていない署名チェーンに含まれている場合は、(2)の証明書と組み合わせて、すべてを同時にインポートする必要があります同じエイリアスの下で

ピア証明書を検証するための信頼できるCAエントリの場合、秘密鍵が存在するキーストアではなく、トラストストアにある必要があります。keytool -trustcacertsでインポートする必要があります。

+0

残念ながらそれはまだ動作しません。私は試しました: openssl pkcs12 -export -in pub.crt -inkey priv.key -CAファイルALPHA_CA_root.pem -out client.p12 -name "別名" 同じエラーが発生します。 また、truststoreにALPHA_CA_root.pemが追加されました。同じ話:( 面白いのは、これが動作することです。 curl -v https://server.com --cert pub.crt --key priv.key --cacert ALPHA_CA_root.pem -H "Content-Type:アプリケーション/ json "-X POST -d '{" json "、" jsonContent "}' – user6140709

関連する問題