ssl - 在 Elasticsearch 中启用 TLS
问题描述
我在 Windows 7 上运行的 Elasticsearch 7.1.1 中启用 TLS 时遇到问题。
我有一个节点,其证书创建为
elasticsearch-certutil ca
elasticsearch-certutil cert --ca elastic-stack-ca.p12
elasticsearch.yml 文件具有以下设置
node.name: node1
discovery.type: single-node
xpack.security.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: 'C:\elasticsearch-7.1.1\config\certs\elastic-certificates.p12'
xpack.security.transport.ssl.truststore.path: 'C:\elasticsearch-7.1.1\config\certs\elastic-certificates.p12'
这很好,但是当我添加以下内容时
xpack.security.http.ssl.enabled: true
xpack.security.http.ssl.keystore.path: 'C:\elasticsearch-7.1.1\config\certs\elastic-certificates.p12'
xpack.security.http.ssl.truststore.path: 'C:\elasticsearch-7.1.1\config\certs\elastic-certificates.p12'
并启动 elasticsearch 我看到以下错误
[2019-06-25T07:34:19,659][WARN][oehAbstractHttpServerTransport] [node1] 在处理客户端 http 流量时捕获异常,关闭连接 Netty4HttpChannel{localAddress=0.0.0.0/0.0.0.0:9200, remoteAddress=/127.0.0.1 :6757} io.netty.handler.codec.DecoderException: io.netty.handler.ssl.NotSslRecordException: 不是 SSL/TLS 记录:
每 10-15 秒重复一次。
https 已启用,我可以使用访问节点https://localhost:9200
我不知道为什么我会收到上述错误,因为没有其他东西正在运行并访问弹性搜索。
任何帮助将非常感激。
非常感谢
解决方案
我也遇到过这个问题。如果您之前安装了 Elastic Search,那么您很有可能获得一些“红色”状态的残留索引,这会导致启用 TLS 的过程不成功。试试这个命令来验证你的索引和它们的状态
curl -XGET https://localhost:9200/_cat/indices
然后删除那些有红色状态的。
推荐阅读
- angular - Angular 6:从后端服务器获取文件对象后下载文件
- sql - 使用 UNPIVOT 将代码从 sql 重写为 redshift
- c# - 遍历单个实体到 HTML 无序列表
- google-cloud-endpoints-v2 - 端点框架客户端库版本
- regex - matching string using regular expression
- python - 如何遍历 numpy 3d 数组
- php - Yii2 模型用于组合多个属性的唯一规则
- javascript - 将 php 密钥转换为 javascript 以进行日志记录
- mysql - 如何查找与特定字符串匹配的条目
- api - 如何找到我网站的所有 API?