javax.net.ssl.sslhandshakeexception:remote host 握手时连接关闭

fcwjkofz  于 2021-07-13  发布在  Java
关注(0)|答案(1)|浏览(580)

我正在尝试运行一个java应用程序,该应用程序对服务器进行https调用,但始终出现以下ssl错误:

  1. javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake
  2. at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:882)
  3. at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1188)
  4. at com.sun.net.ssl.internal.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:654)
  5. at com.sun.net.ssl.internal.ssl.AppOutputStream.write(AppOutputStream.java:100)
  6. at java.io.BufferedOutputStream.write(BufferedOutputStream.java:105)
  7. at org.apache.commons.httpclient.HttpConnection.write(HttpConnection.java:974)
  8. at org.apache.commons.httpclient.HttpConnection.write(HttpConnection.java:942)
  9. at org.apache.commons.httpclient.HttpConnection.print(HttpConnection.java:1032)
  10. at org.apache.commons.httpclient.HttpMethodBase.writeRequestLine(HttpMethodBase.java:2077)
  11. at org.apache.commons.httpclient.HttpMethodBase.writeRequest(HttpMethodBase.java:1918)
  12. at org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:993)
  13. at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:397)
  14. at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:170)
  15. at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:396)
  16. at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:324)
  17. ...
  18. ...
  19. ...
  20. Caused by: java.io.EOFException: SSL peer shut down incorrectly
  21. at com.sun.net.ssl.internal.ssl.InputRecord.read(InputRecord.java:462)
  22. at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:863)

我在其他帖子上看到,我需要在lib/security/cacerts中添加证书。因此,我使用firefox从服务器下载了证书文件,并运行了以下命令:

  1. sudo keytool -import -keystore cacerts -storepass changeit -alias samplecert-root -trustcacerts -file VeriSignClass3SecureServerCA.crt
  2. Certificate was added to keystore

然而,我仍然不断地得到错误。有什么问题?我是否正确地将证书添加到密钥库?

e0uiprwp

e0uiprwp1#

在我的例子中,错误的原因是我使用了一个证书作为客户端证书,它是一个服务器专用的证书。

相关问题