常见的 SSL/TLS 异常编辑

症状

  • 您可能会在日志中看到一些与 SSL/TLS 相关的异常。以下列出了一些常见异常以及解决这些问题的提示。

解决方案

警告:在 https 通道上收到明文 http 流量,正在关闭连接

表示存在传入的明文 http 请求。这通常发生在外部应用程序尝试对 REST 接口进行未加密调用时。请确保所有应用程序在调用启用了 SSL 的 REST 接口时都使用 https

org.elasticsearch.common.netty.handler.ssl.NotSslRecordException:不是 SSL/TLS 记录

表示 SSL 连接上存在传入的明文流量。这通常发生在未配置为使用加密通信的节点尝试连接到使用加密通信的节点时。请验证所有节点是否对 xpack.security.transport.ssl.enabled 使用相同的设置。

有关此设置的更多信息,请参阅安全设置

java.io.StreamCorruptedException:内部传输消息格式无效,获取到

表示在传输接口上收到的数据存在问题,格式未知。这可能发生在启用了加密通信的节点连接到禁用了加密通信的节点时。请验证所有节点是否对 xpack.security.transport.ssl.enabled 使用相同的设置。

有关此设置的更多信息,请参阅安全设置

java.lang.IllegalArgumentException:空文本

此异常通常在对未使用 https 的节点发出 https 请求时出现。如果需要 https,请确保 elasticsearch.yml 中存在以下设置

xpack.security.http.ssl.enabled: true

有关此设置的更多信息,请参阅安全设置

错误:请求了不受支持的密码 [...],但无法在此 JVM 中使用

当指定的 SSL/TLS 密码套件不受运行 Elasticsearch 的 JVM 支持时,就会出现此错误。Security 会尝试使用此 JVM 支持的指定密码套件。当使用 Security 默认值时,可能会出现此错误,因为某些 OpenJDK 发行版默认情况下未启用 PKCS11 提供程序。在这种情况下,我们建议您查阅 JVM 文档,详细了解如何启用 PKCS11 提供程序。

此错误的另一个常见原因是在 Oracle JDK 上运行时请求使用密钥长度大于 128 位的加密密码套件。在这种情况下,您必须安装JCE 无限制强度司法管辖策略文件