Nginx에서 SSL/TLS를 사용하기 위해 자체 서명된 인증서(self-signed certificate)를 생성하고 설정하는 방법은 다음과 같습니다.
### 1. 자체 서명된 인증서 생성하기
1. `openssl` 명령어를 사용하여 자체 서명된 인증서를 생성합니다.
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/nginx.key -out /etc/nginx/ssl/nginx.crt
이 명령어는 2048비트 RSA 키를 가진 자체 서명된 인증서를 1년 동안 유효하도록 생성합니다.
2. 명령어 실행 시, 일련의 질문에 답하게 됩니다. 예:
Country Name (2 letter code) [XX]:KR
State or Province Name (full name) []:Seoul
...
Common Name (e.g. server FQDN or YOUR name) []:your_domain_or_ip
`Common Name`에는 서버의 도메인 이름이나 IP 주소를 입력해야 합니다.
### 2. Nginx에 자체 서명된 인증서 설정하기
1. Nginx의 설정 파일을 열어 SSL/TLS 설정 부분을 찾거나 추가합니다.
sudo nano /etc/nginx/sites-available/default
2. 해당 파일에서 SSL을 활성화하고, 위에서 생성한 키와 인증서의 경로를 지정합니다.
server {
listen 443 ssl;
server_name your_domain_or_ip;
ssl_certificate /etc/nginx/ssl/nginx.crt;
ssl_certificate_key /etc/nginx/ssl/nginx.key;
# ... 기타 설정 ...
}
3. Nginx를 재시작하여 변경사항을 적용합니다.
sudo systemctl restart nginx
### 주의사항
- 자체 서명된 인증서를 사용하면 웹 브라우저는 이 인증서를 신뢰하지 않는다는 경고 메시지를 표시합니다. 따라서, 실제 프로덕션 환경에서는 Let's Encrypt와 같은 신뢰할 수 있는 인증기관에서 발급받은 인증서를 사용하는 것이 좋습니다.
- 자체 서명된 인증서는 테스트 환경에서 SSL 작동 여부를 확인하거나, 내부 네트워크에서의 사용 등에 적합합니다.