이전에 EC2 인스턴스
에 ACM
으로 발급받은 SSL/TLS
을 설정해준적이있었는데, 이번에는 Nginx
에 Let's Encrypt
에서 무료로 발급받아 SSL/TLS 인증서
를 설정해보려고한다.
Let’s Encrypt
는 Certificate Authority (CA). 즉, 인증기관으로 보다 쉬운 방법과 무료로 SSL/TLS 인증서
를 발급해서 HTTPS 통신을 가능하게 해주는 서비스 기관이다.Let’s Encrypt
는 certbot
이라는 소프트웨어를 통해서 이를 쉽게 자동화하도록 만들어져있다.먼저, 아래의 명령어를 통해 cerbot
을 설치해준다.
$ sudo apt update
$ sudo apt install certbot python3-certbot-nginx
이제 아래의 명령어를 통해 SSL/TLS 인증서
를 발급받아준다. 여기서 certonly
옵션은 자동으로 설정을 하지 않고, 인증서 다운만 받겠다는 뜻이다.
sudo certbot certonly --nginx -d hoons.store
이제 /etc/letsencrypt/live/hoon.store
의 경로에 가서 4개의 pem, 1개의 README 가 생성되었는지 확인한다.
/etc/nginx/sites-available/
경로에 conf
파일을 아래와 같이 설정해준다.
# 80 Port로 들어왔을때 https 경로로 리디렉션(301)
server {
listen 80;
server_name hoons.store;
return 301 https://hoons.store$request_uri;
}
# 443 Port로 들어왔을때 프로젝트가 돌아가는 3000 Port로 forwarding
server {
listen 443 ssl http2;
server_name hoons.store;
# ssl 인증서 적용
ssl_certificate /etc/letsencrypt/live/hoons.store/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/hoons.store/privkey.pem;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $http_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;
}
}
설정 후 아래의 명령어로 /etc/nginx/sites-enabled/
경로에 심볼릭 링크도 설정해준다.
$ sudo ln -s /etc/nginx/sites-available/hoons.conf /etc/nginx/sites-enabled/hoons.conf
이제 해당 도메인으로 접속 시 SSL/TLS 인증서
가 설정되어 https
로 잘 접속되는 것을 확인할 수 있다.
SSL/TLS 인증서
적용)