我在Heroku面臨SSLHandshakeException
。如何解決Heroku上的javax.net.ssl.SSLHandshakeException?
這個應用程序不是SSL應用程序。但是這個應用程序從應用程序內部調用了一個基於ssl的web api。 通常,使用keytool爲JVM採用SSL證書解決了這種問題。
但是我如何對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]
謝謝。 我會盡力的。 我發現這個ssl證書在發佈這個問題後實際上是自我認證的。 我通過要求管理員將證書更改爲適當的證書來解決此問題。 非常感謝。 –
請注意,只有在服務器證書是自簽名的情況下才需要。如果它是由認可的證書頒發機構簽署的,則不必做任何事情。 – EJP
最初的問題是Heroku特有的,我仍然想知道如何在Heroku上無法訪問實際的JVM時將(自簽名)證書導入JVM密鑰庫。 –