SSL 인증을 위한 Certbot 설치
# 패키지 목록을 업데이트합니다.
sudo apt update
# Certbot 설치 (nginx 플러그인도 함께 설치)
sudo apt install certbot python3-certbot-nginx
NGINX 서버에 HTTPS를 적용하기위한 명령입니다. 해당 도메인에 SSL 인증서를 자동으로 발급하고, NGINX 설정파일을 수정하여 HTTPS를 활성화 합니다
sudo certbot --nginx -d road-to-friendly.kro.kr
이메일 입력: 이 이메일은 인증서 만료 알림과 중요한 업데이트를 받기 위한 용도로 사용됩니다.
Please enter an email address (used for urgent renewal and security notices)
(Enter 'c' to cancel):
서비스 약관 동의 : 이를 동의해야만 인증서를 발급받을 수 있습니다.
You agree to the terms of service: <https://letsencrypt.org/repository/>
(y)es/(n)o:
마케팅 관련 수신 여부: 마케팅 이메일을 받을지 여부에 대한 질문이 나타납니다. 이 질문은 선택 사항입니다.
Would you like to receive email updates from the Electronic Frontier Foundation (EFF),
the nonprofit that sponsors Let's Encrypt? (y)es/(n)o:
인증서를 발급하면 /etc/letsencrypt/live/road-to-friendly.kro.kr/
해당경로에 키가 생성되있습니다. 해당 키들은 HTTPS 연결을 암호화하고 인증하는 데 사용됩니다.
$ sudo ls /etc/letsencrypt/live/road-to-friendly.kro.kr/
cert.pem chain.pem fullchain.pem privkey.pem README
/etc/nginx/sites-available/default
기본 설정 파일도 변경됩니다 : 기존 http요청을 https 리다이렉션, https 포트 443에서 SSL 사용하도록 설정됩니다.
server {
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name road-to-friendly.kro.kr;
location / {
try_files $uri $uri/ =404;
}
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/road-to-friendly.kro.kr/fullchain.pem; # SSL 인증서 경로
ssl_certificate_key /etc/letsencrypt/live/road-to-friendly.kro.kr/privkey.pem; # 인증서 키 경로
include /etc/letsencrypt/options-ssl-nginx.conf; # Let's Encrypt에서 제공하는 보안 옵션 파일을 포함시켜 SSL 보안을 강화하는 설정
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # DH 키 교환에 필요한 파라미터를 설정하여 더 강력한 보안을 제공
}
server {
if ($host = road-to-friendly.kro.kr) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80 ;
server_name road-to-friendly.kro.kr;
return 404; # managed by Certbot
}
자동갱신 여부 확인하기 위해 아래 명령어를 사용하여 확인합니다.
$ sudo certbot renew --dry-run
Saving debug log to /var/log/letsencrypt/letsencrypt.log
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Processing /etc/letsencrypt/renewal/road-to-friendly.kro.kr.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Account registered.
Simulating renewal of an existing certificate for road-to-friendly.kro.kr
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations, all simulated renewals succeeded:
/etc/letsencrypt/live/road-to-friendly.kro.kr/fullchain.pem (success)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
적용 후 프로젝트를 브라우저에서 확인했을때 https 로 잘 나오는 것을 확인할 수 있었습니다.