2
SSLを使用している自分のWebサイトに接続するJavaプログラムをセットアップしようとしています。標準のHTTPサイトでは完全に動作しますが、HTTPでは動作しません。私の問題は私が証明書に署名していないことです。Javaソケットを使用して署名されていないHTTPSサイトに接続しました
どのように私はそれが署名されていないと私にとにかく接続させるという事実を無視することができますか?
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
at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(Unknown Source)
at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Unknown Source)
at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Unknown Source)
at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(Unknown Source)
at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(Unknown Source)
at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Unknown Source)
at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source)
at sun.net.www.protocol.https.HttpsClient.afterConnect(Unknown Source)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(Unknown Source)
at util.Watchlist.getWatchListWebsiteReaderSSL(Watchlist.java:51)
at util.Watchlist.updateWLDP(Watchlist.java:64)
at util.Watchlist.getWLDP(Watchlist.java:24)
at commands.devices.cpt.WldpMessage.run(WldpMessage.java:52)
at cli.Parser.Parse(Parser.java:74)
at fromUI.UISocketReader.run(UISocketReader.java:54)
at java.lang.Thread.run(Unknown Source)
Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.validator.PKIXValidator.doBuild(Unknown Source)
at sun.security.validator.PKIXValidator.engineValidate(Unknown Source)
at sun.security.validator.Validator.validate(Unknown Source)
at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.validate(Unknown Source)
at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(Unknown Source)
at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(Unknown Source)
... 19 more
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(Unknown Source)
at java.security.cert.CertPathBuilder.build(Unknown Source)
... 25 more
これはもう1歩進んでいます。私は今、 "致命的警告を受けました:bad_record_mac"を取得しています。私はそれがサーバー上のSSLバージョンと関係があるかもしれないと思う。あなたが知っていることがわかったら私に知らせてください。あなたの助けは素晴らしいです! – Kellenjb
TrustManagerは、その仕様に準拠していません。すべての証明書を受け入れる手法は、SSLセキュリティを根本的に破るため、実動コードでは使用しないでください。 RFC 2246の議論を参照してください。 – EJP
@ EJP私はちょうど概念の証明に取り組んでいるので、SSLを弱めることは問題ありません。プロダクションでは、SSLが署名されます。 – Kellenjb