개발하고 있던 웹프로젝트에 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로 접속 시도해보고 정상 작동함을 확인하면 됩니다 !
'Server > AWS' 카테고리의 다른 글
| AWS Elastic Beanstalk에서 SSL 인증서 자동 설정으로 전환하기 (0) | 2025.05.06 |
|---|---|
| aws 배포 오류 <bad gateway 502> (0) | 2025.03.10 |
| 이미지 크기로 인한 업로드 실패 문제 <413 Request Entity Too Large> (0) | 2025.03.10 |