쇼핑몰 만들기 프로젝트 - elastic search 8버전의 curl 명령어 오류 해결하기

yeom yaloo·2023년 3월 11일
0

쇼핑몰

목록 보기
4/19


1. 📌참고한 곳

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 파일을 새로 만들어서 복사 붙여넣기 하라는 말!

위의 블로그에서 내가 헷갈렸던 설명을 다시 보충해서 내가 나중에 발생할 문제에도 대응할 수 있게 정리해놓은 포스팅입니다.


2. 문제 발생?

2-1. 원인

엘라스틱서치 8버전부터는 옵션이 하나 추가가 되어서 curl 명령어가 그냥 작동은 되지 않는다. yml 파일을 찾아서 이를 수정해주면 된다 했는데 무엇인가 찝찝해서 그냥 위의 방식으로 진행

2-2. 해결 과정

도커를 사용해서 컨테이너 내부로 들어가자

$ 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

cert 파일 복사

맨 위에도 써놨듯이 해당 /config/certs/http_ca.crt 위치에 존재하는 crt 파일을 cat /config/certs/http_ca.crt 명령어로 열어 복사한 뒤 로컬 환경 아무곳에나 파일로 저장해줍니다.

curl 명령어 실행(실패)

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}
  • 401 관련 오류가 난다.
  • 이를 해결 하기 위해서 아래와 같이 또 진행을 해준다.

비밀번호 받기 작업

https://velog.io/@junsugi/Elasticsearch-curl-52-Empty-reply-from-server-%EC%97%90%EB%9F%AC#curl-%ED%85%8C%EC%8A%A4%ED%8A%B8%EB%A5%BC-%EC%9C%84%ED%95%9C-%EA%B3%84%EC%A0%95-%EC%B0%BE%EA%B8%B0

최종 curl test

$ 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"
}
  • 위의 명령어를 입력하면 비밀번호를 치라는 답이 나온다 비밀번호 받는 작업을 했다면 받은 비밀번호를 입력해주면 된다.
profile
즐겁고 괴로운 개발😎

0개의 댓글