无法识别的SSL消息,明文连接?例外

kar*_*thi 145 java https

我有一个java编译包,可以在网上与https服务器通话.运行编译会产生以下异常:

javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
    at com.sun.net.ssl.internal.ssl.InputRecord.handleUnknownRecord(Unknown Source)
at com.sun.net.ssl.internal.ssl.InputRecord.read(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.https.HttpsURLConnectionImpl.connect(Unknown Source)
Run Code Online (Sandbox Code Playgroud)

我认为这是由于与客户端机器建立的连接不安全.有没有办法配置本地机器或端口以连接到远程https服务器?

use*_*421 206

我认为这是由于与客户端机器建立的连接不安全.

这是因为您正在与HTTP服务器通信,而不是HTTPS服务器.可能您没有为HTTPS使用正确的端口号.

  • @rsy当您'放置链接...使用https'时,浏览器将为您更改为端口443.你自己也可以这样做.事实上,如果您根本没有指定端口,`HttpURLConnection`将自动为您执行此操作. (9认同)
  • 我有同样的错误,当我开始使用http而不是https时,我解决了.但是,当我使用https将链接放在浏览器中时,它可以工作!我需要执行安全查询.关于如何解决问题的任何想法? (6认同)

小智 16

javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
Run Code Online (Sandbox Code Playgroud)

您应该有一个本地SMTP域名,它将与邮件服务器联系并建立新连接,您应该在下面的编程中更改SSL属性

javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection

 props.put("mail.smtp.socketFactory.fallback", "true"); // Should be true
Run Code Online (Sandbox Code Playgroud)

  • 他说的是HTTPS,而不是SMTP.-1 (7认同)
  • 在我的情况下工作,谢谢!javax.mail.MessagingException:无法连接到SMTP主机:mail.livemusicgo.com,port:25; 嵌套异常是:javax.net.ssl.SSLException:无法识别的SSL消息,明文连接? (2认同)

Jay*_*Jay 8

在通过代理执行POST请求之前忘记登录公司防火墙时,我收到了相同的错误消息.


Sou*_*ain 5

我遇到了同样的错误。这是因为我正在使用 http 访问 https 端口。当我将 http 更改为 https 时,问题解决了。

  • 不,通过 HTTPS 访问 HTTP 端口时出现错误。阅读错误消息。您连接到明文目标。您描述的情况不会导致 SSLException,因为您不会使用 SSL。 (13认同)