EC2에 CertBot와 NginX를 사용하여 https, 도메인 연결 + 자동갱신
https://hongs-coding.tistory.com/267
[aws] ec2 기본 세팅(프리티어)
1. quick-start- Amazon Linux 2023 AMI- 아키텍처 64비트(ARM) ⇒ default가 x64라 바꿔줘야함, ARM이 성능상 우위- ARM으로 하려했으나, 프리티어인 t2 micro는 ARM선택 불가…- 인스턴스 유형: t2 micro- pem 키 발급- 네
hongs-coding.tistory.com
위 글에서 nginx와 ec2 기본세팅은 다 되었다고 칩니다.
CertBot
Certbot 설치
1. sudo dnf install -y certbot python3-certbot-nginx
// 인증서 발급 및 자동 설정
2. sudo certbot --nginx -d {등록하려는 도메인}
2-1. 이메일 입력
2-2. 나머지 yes로 동의
nginx에 서버이름 먼저 등록
1. cd /etc/nginx/conf.d
2. sudo vi default.conf
server {
listen 443 ssl;
server_name {도메인명};
location / {
proxy_pass http://127.0.0.1:8080; # 스프링부트 포트
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
}
# 아래 부분은 Let's encrypt를 통해 SSL 인증을 받은 키를 사용한다.
ssl_certificate /etc/letsencrypt/live/{도메인명}/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/{도메인명}/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}
# http로 들어온 요청은 https로 리다이렉트 되도록 설정한다.
server {
listen 80;
server_name {도메인명};
location / {
return 301 https://{도메인명}$request_uri;
}
}
설정 테스트 후 재시작
- sudo nginx -t
- sudo systemctl reload nginx
인증서 갱신 시 자동 적용
- cron 설치
- sudo yum install cronie -y
- sudo systemctl enable crond
- sudo systemctl start crond
- cron 등록
- sudo crontab -e
- 0 3 * * * certbot renew --quiet && systemctl reload nginx
- 매일 새벽 3시에 인증서가 갱신되고, 자동으로 Nginx가 reload
'Study > cloud' 카테고리의 다른 글
[aws] ElastiCache 기본세팅(프리티어) (0) | 2025.04.21 |
---|---|
[aws] rds 기본세팅(프리티어) (0) | 2025.04.21 |
[aws] ec2 기본 세팅(프리티어) (1) | 2025.04.21 |
[AWS] Budgets - 예산 제한 설정해 서버 비용 리스크 최소화하자! (0) | 2025.02.23 |
댓글