diff --git a/troubleshooting/250716_auth_server_setup.md b/troubleshooting/250716_auth_server_setup.md index 3103c6d..d51010c 100644 --- a/troubleshooting/250716_auth_server_setup.md +++ b/troubleshooting/250716_auth_server_setup.md @@ -186,3 +186,79 @@ server { 3. **마이크로서비스 구조**: 각 서비스(인증, API, 로빙)를 독립적으로 관리 4. **SSL 설정 패턴**: HTTP는 HTTPS로 리다이렉션, HTTPS 블록에 실제 프록시 설정 5. **nginx-infra 워크플로우**: 로컬 수정 → Git push → Gitea Actions → 서버 배포 + +## nginx/TLS 현재 상태 (2025-09-15 확인) + +### 443 포트 사용 현황 +```bash +sudo ss -tlnp | grep 443 +# nginx (PID: 1732569)가 443 포트 사용 중 +``` + +### nginx 설정 파일 위치 +- **메인 설정**: `/etc/nginx/sites-available/default` +- **활성 설정**: `/etc/nginx/sites-enabled/default` (심볼릭 링크) +- **실행 중 설정 확인**: `sudo nginx -T` + +### SSL 인증서 위치 및 상태 +- **Let's Encrypt 인증서 디렉토리**: `/etc/letsencrypt/live/` + - `ro-being.com/`: fullchain.pem, privkey.pem, cert.pem, chain.pem (2025-09-12 갱신) + - `auth.ro-being.com/`: 동일 구조 +- **인증서 유효기간**: 2025-09-11 ~ 2025-12-10 (Let's Encrypt R13 발급) +- **Certbot 자동 갱신**: 90일마다 + +### HTTPS 활성화된 도메인 (sites-available/default) +1. **ro-being.com** (161번 라인 server 블록) + - listen 443 ssl; (Certbot 관리) + - 문서 루트: `/home/admin/frontend-customer/dist` + +2. **git.ro-being.com** (314번 라인) + - listen 443 ssl http2; (315번 라인) + - 프록시: localhost:3000 (Gitea) + - 인증서: `/etc/letsencrypt/live/ro-being.com/` + +3. **auth.ro-being.com** (348번 라인) + - listen 443 ssl http2; (349번 라인) + - 프록시: localhost:9000 (auth-server) + - 인증서: `/etc/letsencrypt/live/auth.ro-being.com/` + +### 프록시 설정 패턴 +```nginx +location /api/ { + proxy_pass http://localhost:8000; # 끝 / 주의 + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; +} +``` + +### 포트별 서비스 +- **80**: nginx (HTTP → HTTPS 리다이렉트) +- **443**: nginx (HTTPS) +- **3000**: Gitea +- **8000**: 다른 서비스 (health check 응답) +- **9000**: auth-server +- **9200**: OpenSearch (HTTP only) +- **5601**: OpenSearch Dashboards + +### OpenSearch 상태 +- **컨테이너**: opensearch (hostexecutor-opensearch-node) +- **TLS**: 데모 인증서만 설정 (esnode.pem) +- **접속**: http://localhost:9200 (내부 HTTP) +- **결정**: nginx 리버스 프록시 방식 사용 (TLS 종료) + +### 유용한 확인 명령어 +```bash +# nginx 설정에서 443 포트 찾기 +grep -n "listen 443" /etc/nginx/sites-available/default + +# 인증서 확인 +sudo ls -la /etc/letsencrypt/live/ + +# SSL 핸드셰이크 테스트 +openssl s_client -connect localhost:443 -servername ro-being.com + +# HTTPS 응답 확인 +curl -I https://ro-being.com +```