Let’s Encrypt에서 SSL 인증서를 발급받고 Nginx에 적용하는 방법을 단계별로 설명하겠습니다. Certbot이라는 도구를 사용하면 간편하게 SSL 인증서를 발급받고 Nginx에 적용할 수 있습니다.
1. Certbot 설치 #
먼저 Certbot을 설치합니다.
sudo apt install certbot python3-certbot-nginx
2. SSL 인증서 발급 #
Certbot을 사용하여 SSL 인증서를 발급받습니다. 이때 Nginx 설정 파일을 자동으로 업데이트하도록 합니다.
sudo certbot --nginx -d example.com -d www.example.com
여기서 example.com
과 www.example.com
은 실제 도메인 이름으로 변경해야 합니다. Certbot은 이 도메인들이 Nginx 설정 파일에 올바르게 설정되어 있는지 확인한 후, SSL 인증서를 발급하고 Nginx 설정을 자동으로 업데이트합니다.
3. SSL 인증서 자동 갱신 설정 #
Let’s Encrypt 인증서는 90일 동안 유효하며, 주기적으로 갱신해야 합니다. Certbot은 자동 갱신을 위한 시스템 타이머를 설정할 수 있습니다.
다음 명령어로 자동 갱신을 테스트할 수 있습니다:
sudo certbot renew --dry-run
이 명령어는 인증서 갱신 프로세스를 시뮬레이션하여 문제가 없는지 확인합니다. 실제로 인증서가 갱신되지는 않습니다.
4. Nginx 설정 확인 #
Certbot이 Nginx 설정 파일을 자동으로 업데이트했는지 확인합니다. 일반적으로 /etc/nginx/sites-available/default
파일을 열어 다음과 같은 내용이 추가되었는지 확인할 수 있습니다:
server
listen 443 ssl;
server_name example.com www.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
# 기타 설정...
}
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$host$request_uri;
}
이 설정은 HTTP(80 포트)로 들어오는 요청을 HTTPS(443 포트)로 리다이렉트합니다.
5. Nginx 재시작 #
설정 변경 후 Nginx를 재시작하여 변경 사항을 적용합니다.
sudo systemctl restart nginx
6. SSL 인증서 확인 #
웹 브라우저에서 https://example.com
으로 접속하여 SSL 인증서가 정상적으로 적용되었는지 확인합니다. 브라우저 주소창에 자물쇠 아이콘이 표시되면 SSL이 정상적으로 적용된 것입니다.
7. 추가 설정 (선택 사항) #
- HSTS(HTTP Strict Transport Security): HSTS를 활성화하여 브라우저가 항상 HTTPS를 사용하도록 강제할 수 있습니다. Nginx 설정 파일에 다음 줄을 추가합니다: add_header Strict-Transport-Security “max-age=31536000; includeSubDomains” always;
- 더 강력한 암호화 설정: SSL 프로토콜과 암호화 스위트를 강화하여 보안을 더욱 강화할 수 있습니다. 예를 들어, 다음과 같이 설정할 수 있습니다: ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; ssl_ciphers ‘ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384’;
이제 Let’s Encrypt에서 SSL 인증서를 발급받고 Nginx에 적용하는 과정이 완료되었습니다. 이를 통해 웹사이트의 보안을 강화하고 사용자 데이터를 보호할 수 있습니다.