From 2e1dd1153f605274ddd49ebc6ea9be4b60e5fde1 Mon Sep 17 00:00:00 2001 From: happybell80 Date: Mon, 15 Sep 2025 12:08:26 +0900 Subject: [PATCH] =?UTF-8?q?docs:=20OpenSearch/nginx=20TLS=20=EC=84=A4?= =?UTF-8?q?=EC=A0=95=20=ED=98=84=ED=99=A9=20=EB=B0=8F=20=EA=B2=B0=EC=A0=95?= =?UTF-8?q?=20=EC=82=AC=ED=95=AD=20=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - nginx HTTPS 이미 활성화 확인 - OpenSearch는 nginx 리버스 프록시 방식 채택 - 내부 HTTP 통신 유지 결정 --- .../251215_admin_opensearch_tls_setup.md | 64 +++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 troubleshooting/251215_admin_opensearch_tls_setup.md diff --git a/troubleshooting/251215_admin_opensearch_tls_setup.md b/troubleshooting/251215_admin_opensearch_tls_setup.md new file mode 100644 index 0000000..7f9e272 --- /dev/null +++ b/troubleshooting/251215_admin_opensearch_tls_setup.md @@ -0,0 +1,64 @@ +# OpenSearch/nginx TLS 현황 및 결정 + +## 작성일: 2025-12-15 +## 작성자: admin +## 환경: 51123 서버 + +## 배경 +- TLS 적용 TODO +- 목적: OpenSearch 외부 접속 시 보안 + +## 현재 상태 + +### nginx +- 443 포트: nginx 사용 중 (PID: 1732569) +- HTTPS 활성: ro-being.com, git.ro-being.com, auth.ro-being.com +- 인증서: `/etc/letsencrypt/live/ro-being.com/` (Let's Encrypt, Certbot 관리) + +### OpenSearch +- 포트 9200: HTTP만 작동 +- 보안 설정: 데모 인증서 (esnode.pem) +- 컨테이너: hostexecutor-opensearch-node + +### 로그 수집 +- Fluent-bit → OpenSearch: 내부 HTTP 통신 + +## 검토한 방안 + +### 방안 1: OpenSearch HTTPS 활성화 +- OpenSearch에 Let's Encrypt 인증서 적용 +- Docker Compose volumes 수정 필요 +- 내부 통신도 HTTPS 사용 +- 장점: End-to-End 암호화 +- 단점: 성능 저하, 설정 복잡, 인증서 관리 부담 + +### 방안 2: nginx 리버스 프록시 (권장) +- nginx에서 TLS 종료 +- OpenSearch는 HTTP 유지 +- nginx 설정에 `/opensearch` 경로 추가 +- 외부: https://ro-being.com/opensearch +- 내부: http://localhost:9200 +- 장점: 간단, 빠름, 표준 방식 +- 단점: 내부 통신 평문 + +## 결정 +- **nginx 리버스 프록시 방식 채택** +- 이유: 로그는 외부 노출 금지, 내부 HTTP 통신 충분 +- nginx HTTPS는 이미 완료 상태 + +## 필요 작업 + +### nginx 프록시 설정 추가 (로컬 개발자) +``` +location /opensearch/ { + proxy_pass http://localhost:9200/; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + auth_basic "OpenSearch Access"; + auth_basic_user_file /etc/nginx/.htpasswd; +} +``` + +### 결론 +- TLS 적용: nginx는 완료, OpenSearch는 프록시 방식으로 해결 +- 추가 작업: nginx 프록시 경로 설정만 필요 \ No newline at end of file