httpsのIBM Libertyサーバー(IBM Container上)を自己署名入りの証明書(server.xmlで説明)で実行しています。IBM LibertyとCloudant間のSSLハンドシェイクの失敗
私はIBMのクラウドデータベースにDBのニーズで接続しています。リバティーサーバーをhttpsに切り替えるまでは、すべてうまくいきました。私は自由のトラストストアにopenssl s_client -connect cloudant.com:443 -showcerts > cloudant.cert
によって生成されたcloudant証明書をインポートするには、ここhttps://www.ibm.com/support/knowledgecenter/SSHS8R_7.0.0/com.ibm.worklight.installconfig.doc/install_config/t_install_datastore_config_certificates.htmlを文書化し、その後、次のexcepton
[ERROR ] CWPKI0022E: SSL HANDSHAKE FAILURE: A signer with SubjectDN CN=*.cloudant.com, O="Cloudant, Inc.", L=Boston, ST=Massachusetts, C=US was sent from the target host. The signer might need to be added to local trust store /opt/ibm/wlp/output/defaultServer/resources/security/key.jks, located in SSL configuration alias defaultSSLConfig. The extended error message from the SSL handshake exception is: PKIX path building failed: java.security.cert.CertPathBuilderException: PKIXCertPathBuilderImpl could not build a valid CertPath.; internal cause is:
java.security.cert.CertPathValidatorException: The certificate issued by CN=DigiCert High Assurance EV Root CA, OU=www.digicert.com, O=DigiCert Inc, C=US is not trusted; internal cause is:
java.security.cert.CertPathValidatorException: Certificate chaining error
を取得していますが、それは問題を解決しませんでした。
あなたのお手伝いがありがとうございます。
私はこのミスをかなり遅く認識しましたが、それが問題の解決に役立ちました。 'cloudant.com'、' bluemix.cloudant.com'、 'xxxxx-bluemix.cloudant.com'の証明書はすべて異なっていて、' xxxxx-bluemix.cloudant.com'を使う必要がありました。また、私が持っていたもう一つの問題は、デフォルトのトラストストア '/opt/ibm/wlp/output/defaultServer/resources/security/key.jks'の存在が、' securityUtilityを使って自己署名証明書を生成するまで存在しませんでした私のDockerfileの自由のcreateSSLCertificate'ユーティリティ。これは、bluemix-cloudant証明書をインポートする前に行う必要がありました。 –