개발하고 있던 웹프로젝트에 meta API를 라이브 모드로 사용하기 위해서 ssl을 발급받아 https로 변경해주려고 합니다.


 

1. PEM 키 파일 설정 및 SSH 접속

먼저 AWS에서 발급받은 PEM 키 파일의 권한을 설정합니다:

(.pem키가 다운로드 항목에 있다면)

chmod 400 ~/Downloads/펌키이름.pem

 

이후 SSH 접속 시도:

ssh -i ~/Downloads/펌키이름.pem ec2-user@e2c퍼블릭IP

 

2. Certbot 및 Nginx 설치

Amazon Linux 2023 기준으로 Certbot 및 Certbot-Nginx 플러그인을 설치합니다:

sudo yum install -y certbot python3-certbot-nginx

sudo nginx -v으로 설치되어있는가를 확인 후,

 

3. Nginx 시작 및 부팅 시 자동 실행 설정

sudo systemctl start nginx
sudo systemctl enable nginx

 

 

4. SSL 인증서 발급 (Let's Encrypt)

sudo certbot --nginx -d 도메인주소 -d www.도메인주소

저는 www 도메인 등록을 안 해둬서 www는 제외하고 발급받았습니다.

 

/etc/letsencrypt/live/도메인주소/ 경로에 인증서 저장됨 

 

5. 인증서 갱신 테스트 및 자동화

갱신 시뮬레이션 테스트

sudo certbot renew --dry-run

 

Crontab을 이용한 자동 갱신 설정

sudo crontab -e

파일을 만들어 아래 내용 입력 후 저장

0 3 * * * certbot renew --quiet --nginx

매일 새벽 3시에 갱신 시도

 

6. HTTP -> HTTPS 강제 리디렉션 설정

다음 내용을 /etc/nginx/conf.d/redirect.conf 파일에 작성:

server {
    listen 80;
    server_name 도메인주소;

    return 301 https://$host$request_uri;
}

 

설정 확인 및 Nginx 재시작:

sudo nginx -t
sudo systemctl reload nginx

 

도메인으로 보안 연결이 정상 작동하며 인증서 자동 갱신까지 설정 완료

이제 https로 접속 시도해보고 정상 작동함을 확인하면 됩니다 !

+ Recent posts