https://bitgadak.tistory.com/6
certbot 으로 let's encrypt 인증서 발급받기
certbot 을 통해 let's encrypt 인증서를 발급받아보자. 현재로서는 가장 간단한 방법인 것 같다. 공식 사이트 가이드를 따라 진행한다. 아래 페이지를 참고했다. certbot 가이드: https://certbot.eff.org/instruc
bitgadak.tistory.com
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 |