【发布时间】:2012-02-22 17:22:45
【问题描述】:
我得到了问题标题中所述的异常,同时使用HttpsURLConnection 类在 Java 中使用 HTTPS 连接到服务器。另外我正在尝试使用the second last answer 跳过证书验证。任何人都可以建议我任何出路吗?
更新 1:堆栈跟踪
javax.net.ssl.SSLException: Received fatal alert: bad_record_mac
at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:190)
at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:136)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1720)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:954)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1138)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1165)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1149)
at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:434)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:166)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:133)
at com.kuliza.sitepulse.thread.HttpConnectionThread.run(HttpConnectionThread.java:77)
at java.lang.Thread.run(Thread.java:662)
我得到以下代码行的异常:http.connect(); 其中http 的类型为HttpsURLConnection 类。
更新 2:SSL 日志
以下是 SSL 握手日志:
[Raw read]: length = 5
0000: 15 03 00 00 02 .....
[Raw read]: length = 2
0000: 02 14 ..
Thread-6, READ: SSLv3 Alert, length = 2
Thread-6, RECV SSLv3 ALERT: fatal, bad_record_mac
Thread-6, called closeSocket()
请给我任何线索,这让我发疯了!!
提前致谢!
【问题讨论】:
-
使用
-Djavax.net.debug=all尝试连接?它会输出很多的调试信息,可以帮助你缩小出错的范围。 -
嘿@FauxFaux 我已经按照你的建议说并且还更新了问题,但我仍然一无所知
-
也许这会有所帮助:support.sonatype.com/entries/…