javax.net.ssl警告是什么;用户“已取消”;什么意思?

javax.net.ssl警告是什么;用户“已取消”;什么意思?,ssl,java-8,Ssl,Java 8,我正在通过SSL连接到服务器。这在OpenJDK8 262和265中运行良好 对于275,我突然在输出中看到: javax.net.ssl|FINE|5F|pool-1-thread-1|2021-03-02 10:47:27.085 CET|Logger.java:765|Received alert message ( "Alert": { "level" : "warning", "descriptio

我正在通过SSL连接到服务器。这在OpenJDK8 262和265中运行良好

对于275,我突然在输出中看到:

javax.net.ssl|FINE|5F|pool-1-thread-1|2021-03-02 10:47:27.085 CET|Logger.java:765|Received alert message (
"Alert": {
  "level"      : "warning",
  "description": "user_canceled"
}
我找到了这个常数():

当我在回购协议中搜索该常数时,我只得到一个点击(在将代码转换为字符串的方法中):

搜索所有OpenJDK源代码会产生相同的命中率:

我被难住了。谁发出这个警告?为什么


更新:经过更多的测试,我得到的印象是远程端发送“取消”。可能吗?对我来说,这没有意义,因为我连接到服务器(我发送ClientHello,我接收ServerHello)。

您看到的是您试图与之握手的服务器发送的警报(定义见)

在上面链接的规范中,
90
user\u cancelled
)的警报代码描述如下:

此握手被取消的原因与事件无关 协议失败。如果用户在 握手完成,只需通过发送 关闭通知更合适。应遵循此警报 以接近的方式通知。此消息通常是一个警告

简而言之,这表示此特定警报代码旨在指示取消握手过程的实现特定原因。因此,如果不知道另一端运行的是什么服务器软件,就不可能说出到底出了什么问题


您可以尝试通过比较工作版本和损坏版本中握手过程的详细日志来调试连接,并查看不同之处。这可能会让您了解如何解决此问题。

Yes“Received alert”(已接收警报)表示远程发送警报。90(每个RFC)不应用于协议错误,因此可能或应该导致它的原因完全取决于远程设备,您没有描述或识别远程设备。您可以为工作版本和损坏版本设置sysprop
javax.net.debug=ssl:handshake
,并查找可能对服务器有影响的差异,但这主要是猜测。您有用于TCP连接的tcpdump吗?@JanGaraj不,这是一个客户端服务器,我只能安装什么。@dave\u thompson\u 085啊!我完全错过了那条消息。我将尝试让系统管理员使用这些选项启动服务器。
static final byte           alert_user_canceled = 90;
    case alert_user_canceled:
        return "user_canceled";