# OpenSearch/nginx TLS 현황 및 결정 ## 작성일: 2025-09-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 프록시 경로 설정만 필요