-
[aws] ec2 에 배포한 사이트에 ssl 인증서 발급하기 (feat. nginx)BackEnd 2023. 12. 8. 17:36
https://bitgadak.tistory.com/6
ssl 발급 전에 개인 도메인부터 있어야 함. (가비아 같은 곳에서 이벤트가에 사면 500원에도 구매 가능)
도메인은 aws route53 에서 ec2 인스턴스의 퍼블릭 ip와 연결해주면 됨 .
1. certbot을 설치하는 과정은 위 링크를 따라하기
certbot certonly --nginx -d [도메인]
만약 Permission denied: 이 떳다면 자신이 root에 접속 -> sudo -i
발급 받은 키들은 ls -l /etc/letsencrypt/live/도메인 안에 저장되어 있음
2. nginx에 해당 키들에 대해 명시해주기
server { listen 80 ; listen 443 ssl; root /var/www/html; index index.html; server_name [도메인]; ssl_certificate /etc/letsencrypt/live/도메인/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/도메인/privkey.pem; location / { proxy_pass http://localhost:3000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } }
3. sudo nginx -t 를 통해 문법 체크해주고 sudo service nginx restart 를 통해 재시작 이후 접속 해보기
ch) http 로 접속시 자동으로 https 통신을 원하면 site-available/default에 아래 내용을 추가하면 됨
server { listen 80; server_name [domain] www.[domain]; return 301 https://$host$request_uri; }
return 301 https://$host$request_uri; 이 부분은 수정 없이 그대로 사용.
이 명령은 HTTP를 통해 들어온 모든 요청을 HTTPS로 리디렉션하는 역할.
$host와 $request_uri는 Nginx가 자동으로 처리하는 변수:
- $host는 요청된 서버의 호스트 이름을 나타냄
- $request_uri는 요청된 URI를 나타냄 (예: /path?query=string).
'BackEnd' 카테고리의 다른 글
[aws] 인스턴스에서 build 시 freezing 현상 해결 (프리티어) (1) 2023.12.05 aws ec2에 배포하기 ( 인스턴스 생성부터 ) - 2023.12 기준 (작성중) (0) 2023.12.01