보안
데이터를 서버와 주고받을 때 암호화 시켜 통신하기 때문에 보안상 좋다.
사용자 이탈
HTTPS를 적용하지 않으면 브라우저에서 경고창을 띄워준다. → 이는 사용자들이 불안감을 느끼고 이탈하게 되는 결과를 초래할 수 있다.

$ sudo snap install --classic certbot
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Nginx에 Https를 적용시켜주는 Certbot 라이브러리를 설치한다.
$ sudo certbot --nginx -d <도메인 주소>
# 예시
$ sudo certbot --nginx -d jscode.n-e.kr
$ sudo certbot --nginx -d admin.jscode.n-e.kr

Https 인증서를 발급받는 과정을 거친다.
server {
server_name jscode.n-e.kr;
location / {
root /usr/share/nginx/nginx-frontend-react/dist;
index index.html;
}
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/jscode.n-e.kr/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/jscode.n-e.kr/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
server_name admin.jscode.n-e.kr;
location / {
root /usr/share/nginx/nginx-frontend-next/out;
index index.html;
}
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/admin.jscode.n-e.kr/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/admin.jscode.n-e.kr/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
if ($host = jscode.n-e.kr) {
# https로 리다이렉트 처리
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
server_name jscode.n-e.kr;
return 404; # managed by Certbot
}
server {
if ($host = admin.jscode.n-e.kr) {
# https로 리다이렉트 처리
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
server_name admin.jscode.n-e.kr;
return 404; # managed by Certbot
}
Certbot 라이브러리로 인해서 Nginx의 설정파일 내용을 Https를 적용시켜주는 코드로 자동으로 변환되었다. server 블록내에서 listen과 server_name 블록의 순서가 변경되었지만 보통 server 블록에서는 이 둘을 순서에 상관없이 먼저 읽어들이므로 상관없다.
기본적으로 80포트로 들어온 요청을 https 주소로 리다이렉트 해주는 코드가 추가된다. 따라서 http로 요청을 하더라도 https 주소로 리다이렉트되어 처리된다.
인프런 JSCODE(박재성)강사님의 "비전공자도 이해할 수 있는 Nginx 입문/실전" 강의를 듣고 정리한 내용입니다.