EC2 Https 적용 방법
기존에는 aws의 elb를 사용하여 https 설정을 해주었었는데 생각보다 비용이 나와서 깜짝 놀랐었다…. 그래서 EC2내에서 인증서를 발급받아 적용하는 방식으로 바꿔주었다. 아래는 그 과정이다.
1. 도메인 발급
https://www.freenom.com/en/index.html?lang=en 위 사이트를 통해 무료 도메인을 발급받고 자신의 EC2 Ip에 적용시킨다.
2. 인증서 요청 및 발급
Certbot을 이용해 Let’s Encrypt 인증서를 발급해준다. 아래 명령어를 차례대로 실행하여 Certbot을 설치해준다.
sudo apt-get update
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install certbot
그 후 standalone 방식으로 인증 요청을 한다.
sudo certbot certonly –-standalone -d 도메인 이름
요청 후 두개의 pem 파일을 발급 받을 것이다.
3. 인증서 등록
발급받은 인증서를 등록하기 위해 /etc/nginx/sites-enabled
로 이동한 후 아래 명령어를 실행한다.
sudo rm default
sudo nano 도메인이름.conf # 파일 이름은 도메인 이름이 아니어도 된다. 햇갈리지 않기 위해 해주었다.
파일 내용을 아래 내용으로 채워준다. 스프링부트가 8081 포트에서 실행되기 때문에 80 -> 443 -> 8081 redirect를 해주었다.
server {
listen 80;
listen [::]:80;
location / {
proxy_pass https://127.0.0.1;
}
}
server {
listen 443;
location / {
proxy_pass http://127.0.0.1:8081;
}
ssl on;
ssl_certificate /etc/letsencrypt/live/yose.ml/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/yose.ml/privkey.pem;
}
끝 !!