관리 메뉴

피터의 개발이야기

[Elasticsearch] received plaintext http traffic on an https channel, closing connection Netty4HttpChannel 해결 방법 본문

DevOps/Elasticsearch

[Elasticsearch] received plaintext http traffic on an https channel, closing connection Netty4HttpChannel 해결 방법

기록하는 백앤드개발자 2024. 8. 4. 10:10
반응형

ㅁ 들어가며

[Elasticsearch] Docker로 Elasticsearch 설치 및 테스트하기을 하면서 발생한 https 에러를 해결하는 과정을 정리하였다.

ㅇ 이 해결방법은 로컬 개발환경에서 테스트를 위한 해결방법이다. 그래서 운영환경에서는 인증서 설치 과정을 수행해야 한다. 

 

ㅁ 에러 상황

# 통신 수행
$ curl -X GET "localhost:9200/?pretty"

# 에러 내용
received plaintext http traffic on an https channel, closing connection Netty4HttpChannel

# row logs
{"@timestamp":"2024-07-28T21:48:38.081Z", "log.level": "WARN", "message":"received plaintext http traffic on an https channel, closing connection Netty4HttpChannel{localAddress=/172.17.0.5:9200, remoteAddress=/192.168.65.1:41538}", "ecs.version": "1.2.0","service.name":"ES_ECS","event.dataset":"elasticsearch.server","process.thread.name":"elasticsearch[2ca4c63624e0][transport_worker][T#8]","log.logger":"org.elasticsearch.http.netty4.Netty4HttpServerTransport","elasticsearch.cluster.uuid":"DDQp4X9eR8yEQPDkdORyoA","elasticsearch.node.id":"WPoCqk7RStCRbpVOzaCwaQ","elasticsearch.node.name":"2ca4c63624e0","elasticsearch.cluster.name":"docker-cluster"}

ㅇ https에 대한 보안 설정으로 인해 에러가 발생하였다.

 

ㅁ 해결방법

# 설정파일 확인
/config/elasticsearch.yml

# 보안 설정 변경
xpack.security.enabled: false
xpack.security.enrollment.enabled: false
xpack.security.http.ssl: enabled: false
xpack.security.transport.ssl: enabled: false

ㅇ elasticsearch의 설정에서 security 설정을 해제하면 된다.

ㅇ 하지만 편집에 문제가 발생했다.

ㅇ Docker 컨테이너에는 VI가 설치되어 있지 않았다.

 

#로컬로 설정파일 복사
$ docker cp es01:/usr/share/elasticsearch/config/elasticsearch.yml elasticsearch.yml                                                                                                                                              ✔  8811  07:02:36
Successfully copied 2.56kB to /Users/peterseo/test/es/elasticsearch.yml

# elasticsearch.yml
cluster.name: "docker-cluster"
network.host: 0.0.0.0

#----------------------- BEGIN SECURITY AUTO CONFIGURATION -----------------------
#
# The following settings, TLS certificates, and keys have been automatically
# generated to configure Elasticsearch security features on 26-07-2024 06:09:26
#
# --------------------------------------------------------------------------------

# Enable security features
xpack.security.enabled: true  <==== 여기 수정

xpack.security.enrollment.enabled: true <==== 여기 수정

# Enable encryption for HTTP API client connections, such as Kibana, Logstash, and Agents
xpack.security.http.ssl:
  enabled: true <==== 여기 수정
  keystore.path: certs/http.p12

# Enable encryption and mutual authentication between cluster nodes
xpack.security.transport.ssl:
  enabled: true <==== 여기 수정
  verification_mode: certificate
  keystore.path: certs/transport.p12
  truststore.path: certs/transport.p12
#----------------------- END SECURITY AUTO CONFIGURATION -------------------------

ㅇ 로컬에 복사된 설정파일을 수정하였다.

 

# 수정된 설정파일을 다시 복사한다.
$ docker cp elasticsearch.yml es01:/usr/share/elasticsearch/config/elasticsearch.yml                                                                                                                                              ✔  8813  07:06:18
Successfully copied 2.56kB to es01:/usr/share/elasticsearch/config/elasticsearch.yml

# 재기동
$ docker restart es01
es01

ㅇ 다시 컨테이너 안으로 복사를 하고 컨테이너를 재기동하였다.

 

ㅁ 정상 확인

$  curl -X GET "localhost:9200/?pretty"
{
  "name" : "2ca4c63624e0",
  "cluster_name" : "docker-cluster",
  "cluster_uuid" : "DDQp4X9eR8yEQPDkdORyoA",
  "version" : {
    "number" : "8.9.0",
    "build_flavor" : "default",
    "build_type" : "docker",
    "build_hash" : "8aa461beb06aa0417a231c345a1b8c38fb498a0d",
    "build_date" : "2023-07-19T14:43:58.555259655Z",
    "build_snapshot" : false,
    "lucene_version" : "9.7.0",
    "minimum_wire_compatibility_version" : "7.17.0",
    "minimum_index_compatibility_version" : "7.0.0"
  },
  "tagline" : "You Know, for Search"
}

 

 

ㅁ 함께 보면 좋은 사이트

[DE]elastic search 설치 후 에러 received plaintext http traffic on an https channel, closing connection Netty4HttpChannel

 

반응형
Comments