https://velog.io/@junsugi/Elasticsearch-curl-52-Empty-reply-from-server-%EC%97%90%EB%9F%AC
http_ca.crt 파일
/config/certs/http_ca.crt 루트 폴더 안에 있는 crt 파일을 cat 해서 나오는 내용들을 복사해서 로컬(본인 개발환경=노트북)에 crt 파일을 새로 만들어서 복사 붙여넣기 하라는 말!
위의 블로그에서 내가 헷갈렸던 설명을 다시 보충해서 내가 나중에 발생할 문제에도 대응할 수 있게 정리해놓은 포스팅입니다.
엘라스틱서치 8버전부터는 옵션이 하나 추가가 되어서 curl 명령어가 그냥 작동은 되지 않는다. yml 파일을 찾아서 이를 수정해주면 된다 했는데 무엇인가 찝찝해서 그냥 위의 방식으로 진행
$ curl localhost:9200
curl: (52) Empty reply from server
$ docker exec -it --user root 본인containerId일부 /bin/bash
예를 들면 아래와 같이 Container id가 있다고 가정해보자.
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6ce5b4f06baa docker.elastic.co/elasticsearch/elasticsearch:8.5.3 "/bin/tini -- /usr/l…" 46 hours ago Up 46 hours 0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp elasticsearch
$ docker exec -it --user root 6ce5 /bin/bash
맨 위에도 써놨듯이 해당 /config/certs/http_ca.crt
위치에 존재하는 crt 파일을 cat /config/certs/http_ca.crt
명령어로 열어 복사한 뒤 로컬 환경 아무곳에나 파일로 저장해줍니다.
curl --cacert /Users/yeomhwiju/Documents/certs/http_ca.crt https://localhost:9200
{"error":{"root_cause":[{"type":"security_exception","reason":"missing authentication credentials for REST request [/]","header":{"WWW-Authenticate":["Basic realm=\"security\" charset=\"UTF-8\"","Bearer realm=\"security\"","ApiKey"]}}],"type":"security_exception","reason":"missing authentication credentials for REST request [/]","header":{"WWW-Authenticate":["Basic realm=\"security\" charset=\"UTF-8\"","Bearer realm=\"security\"","ApiKey"]}},"status":401}
$ curl --cacert /usr/share/elasticsearch/config/certs/http_ca.crt -u elastic https://localhost:9200
{
"name" : "6ce5b*******",
"cluster_name" : "docker-cluster",
"cluster_uuid" : "maKUCNYWRGekPWjudq4DLw",
"version" : {
"number" : "8.5.3",
"build_flavor" : "default",
"build_type" : "docker",
"build_hash" : "4ed5ee9afac63de92ec98f404ccbed7d3ba9584e",
"build_date" : "2022-12-05T18:22:22.226119656Z",
"build_snapshot" : false,
"lucene_version" : "9.4.2",
"minimum_wire_compatibility_version" : "7.17.0",
"minimum_index_compatibility_version" : "7.0.0"
},
"tagline" : "You Know, for Search"
}