4

SSLHandshakeExceptionHerokuに直面しました。

このアプリはSSLアプリではありませんでした。しかし、このアプリは、アプリ内からsslベースのWebAPIを呼び出しました。通常、keytoolを使用してSSL証明書をJVMに採用すると、この種の問題が解決されます。

しかし、Herokuでこれをどのように行うのですか?

ここにログ:

    2012-06-12T11:08:08+00:00 app[web.1]: Caused by: sun.security.validator.ValidatorException:  PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException:  unable to find valid certification path to requested target
    2012-06-12T11:08:08+00:00 app[web.1]:   at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:324) ~[na:1.6.0_20]
    2012-06-12T11:08:08+00:00 app[web.1]:   at sun.security.validator.Validator.validate(Validator.java:235) ~[na:1.6.0_20]
    2012-06-12T11:08:08+00:00 app[web.1]:   at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:147) ~[na:1.6.0_20]
    2012-06-12T11:08:08+00:00 app[web.1]:   at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:230) ~[na:1.6.0_20]
    2012-06-12T11:08:08+00:00 app[web.1]: Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    2012-06-12T11:08:08+00:00 app[web.1]:   at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:270) ~[na:1.6.0_20]
    2012-06-12T11:08:08+00:00 app[web.1]:   at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:197) ~[na:1.6.0_20]
    2012-06-12T11:08:08+00:00 app[web.1]:   at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:255) ~[na:1.6.0_20]
    2012-06-12T11:08:08+00:00 app[web.1]:   at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:319) ~[na:1.6.0_20]
    2012-06-12T11:08:08+00:00 app[web.1]:   at sun.security.validator.Validator.validate(Validator.java:235) ~[na:1.6.0_20]
    2012-06-12T11:08:08+00:00 app[web.1]:   at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:147) ~[na:1.6.0_20]
    2012-06-12T11:08:08+00:00 app[web.1]:   at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:224) ~[na:1.6.0_20]
4

4 に答える 4

1

実際、herokuがキーストアの更新をサポートしているかどうかはわかりませんが、このようにconfigまたはprocfileでJava環境パラメーターとして独自のキーストアをいつでも提供できます。

web: java -jar -Djavax.net.ssl.trustStore=path/to/keystore -Djavax.net.ssl.trustStorePassword=changeit --port $PORT target/*.war
于 2012-10-15T13:35:05.950 に答える
0

SSL connection to a server, you should be having the Server's certificateクライアントトラストストアでを作成しているとき。

とを使用しimport the server certificate into a keystoreてキーストアを指定する必要があります。javax.net.ssl.trustStorejavax.net.ssl.trustStorePassword

これらのプロパティを指定したかどうかを確認してください。すでに指定されている場合は、キーストアを正しく指しているかどうかを確認してください。

于 2012-06-12T12:00:10.030 に答える
0

SSL証明書の検証の問題(通常は自己署名証明書で発生します)を修正するには、Javaキーストアに証明書を追加して、JVMに常に信頼するように指示する必要があります。

ローカルに追加するには:

  • キーストアファイルを検索します(通常はjre / lib / security / cacertsにあります) 。
  • 証明書の.cerファイルをダウンロードします(これを行うにはいくつかの方法があります。Firefoxでダウンロードするのが最も簡単だと思います)
  • キーストアに証明書をインポートします。keytool -import -keystore cacerts -file custom.cer

cacertsファイルをカスタムJVMファイルとして追加して、キーストアをHerokuにアップロードします。

于 2016-11-19T15:34:21.603 に答える
0

ブログのプロセスを更新しました。これを使用して、Herokuのcacertsを正常にカスタマイズできました。

https://deepaksinghviblog.blogspot.com/2021/04/heroku-custom-trust-store-for-ssl.html

于 2021-04-10T18:47:00.410 に答える