运维.ElasticSearch 一个异常received plaintext http traffic on an https
Visit me at CSDN: https://jclee95.blog.csdn.net
My WebSite:http://thispage.tech/
Email: 291148484@163.com.
Shenzhen China
Address of this article:https://blog.csdn.net/qq_28550263/article/details/139140194
HuaWei:https://bbs.huaweicloud.com/blogs/427856
[2024-05-23T09:45:03,336][WARN ][o.e.h.n.Netty4HttpServerTransport] [DESKTOP-6GQSTBC] received plaintext http traffic on an https channel, closing connection Netty4HttpChannel{localAddress=/[0:0:0:0:0:0:0:1]:9200, remoteAddress=/[0:0:0:0:0:0:0:1]:63881}
[2024-05-23T10:06:12,670][WARN ][o.e.h.n.Netty4HttpServerTransport] [DESKTOP-6GQSTBC] received plaintext http traffic on an https channel, closing connection Netty4HttpChannel{localAddress=/[0:0:0:0:0:0:0:1]:9200, remoteAddress=/[0:0:0:0:0:0:0:1]:50163}
这两条日志的关键信息如下:
- 日志级别为WARN,表示有异常情况
- 日志来自o.e.h.n.Netty4HttpServerTransport,即Elasticsearch的HTTP服务器组件
- 日志内容提示"
received plaintext http traffic on an https channel
",即在HTTPS通道上接收到了明文HTTP流量 - Elasticsearch的应对措施是"closing connection",即关闭了这个连接
所以可以判断,Elasticsearch服务器期望客户端使用HTTPS发送请求,但实际收到的是明文HTTP请求,因此拒绝了这些请求。
同时日志中也提到了请求的源地址和目标地址,这里都是[0:0:0:0:0:0:0:1]
,即IPv6环回地址,相当于IPv4的127.0.0.1
,表示请求来自本机。目标端口为9200
,即Elasticsearch的默认端口。
使用HTTPS协议访问Elasticsearch而不是HTTP。
例如你向创建一个名为test_index
的索引,之前你PUT访问的是http://localhost:9200/test_index
,现在将设你如将请求的URL改为https://localhost:9200/test_index
,并确保Elasticsearch配置了正确的SSL证书。开发环境下可以直接请求。
默认只能用HTTPS。将Elasticsearch配置为允许HTTP明文通信。可以在elasticsearch.yml
配置文件中添加以下内容来启用HTTP:
http.port: 9200
找到该位置取消注释即可:
或者,如果你是在本地开发环境中使用Elasticsearch,也可以考虑禁用SSL以方便使用。这通常很没必要,就算你实在不想用HTTPS请求,你启动HTTP就可以了,而不是禁用SSL。可以在elasticsearch.yml
中添加以下配置:
xpack.security.http.ssl:
enabled: false
...
xpack.security.transport.ssl:
enabled: false
...
这两种修改配置的方式,需要在修改后重启Elasticsearch服务。不过一帮这样配置只适合开发环境,生产环境中还是要启用SSL以保证安全。
- 点赞
- 收藏
- 关注作者
评论(0)