常见的 SSL/TLS 异常

编辑

症状

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

解决方案

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

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

org.elasticsearch.common.netty.handler.ssl.NotSslRecordException: not an SSL/TLS record

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

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

java.io.StreamCorruptedException: invalid internal transport message format, got

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

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

java.lang.IllegalArgumentException: empty text

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

xpack.security.http.ssl.enabled: true

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

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

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

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