반응형
기존에 작성했던 글 : 무료 SSL인증서 발급하기 , 리버스프록시 설정하기
이번글은 기존 작성했던 글과 다른 Amazon Linux AMI OS를 사용했습니다.
단순히 리버스프록시 적용하려면 위의 링크를 보세요
Certbot 설치하기
$ curl -O https://dl.eff.org/certbot-auto
$ chmod +x certbot-auto
$ mv certbot-auto /usr/bin/certbot-auto
Nginx 설치하기(설치안되어있다면 설치해주세요)
$ sudo yum install nginx -y
// certbot 설치를 위해서 Nginx를 잠시 멈춰줘야합니다.
$ sudo service nginx stop
certbot을 통해 인증서 받기
$ certbot-auto certonly --standalone -d example.com --debug
// 아마존 리눅스는 --debug를 붙혀줘야 설치됩니다
// 이메일이든 YES/NO든 물어보는데 설정끝나고나서 아래의 메시지가 뜨면 설치 완료!
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at
/etc/letsencrypt/live/example.com/fullchain.pem. Your cert will
expire on 2016-mm-dd. To obtain a new version of the certificate in
the future, simply run Certbot again.
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
Nginx 설정하기
$ cd /etc/nginx/
$ cp nginx.conf nginx.conf.org
// nginx.conf 파일 수정 혹은 sudo /etc/nginx/conf.d/virtual.conf 파일에 입력해도된다.
$ sudo vi nginx.conf
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name localhost;
root /usr/share/nginx/html;
// http 접속시 https로 리다이렉트
return 301 https://$host$request_uri;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
//프록시로 받아올 정보의 포트번호 임의 설정
location / {
proxy_pass https://localhost:3000/;
}
}
$ sudo vi /etc/nginx/conf.d/virtual.conf
server {
server_name 도메인주소;
listen 443;
ssl on;
ssl_certificate /etc/letsencrypt/live/도메인주소/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/도메인주소/privkey.pem;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:SEED:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!RSAPSK:!aDH:!aECDH:!EDH-DSS-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA:!SRP;
ssl_prefer_server_ciphers on;
# 리버스프록시 설정
# location / {
# proxy_set_header X-Real-IP $remote_addr;
# proxy_set_header HOST $http_host;
# proxy_set_header X-NginX-Proxy true;
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# proxy_pass http://localhost:3000;
# proxy_redirect off;
# }
}
Nginx 재시작하기
$ sudo service nginx start
// 주소라던지 nginx 내부 기타 설정을 변경했다면 항상 nginx 서버를 끄고 다시 켜줘야 적용이 된다.
$ sudo service nginx stop // 끄기
$ sudo service nginx start // 켜기
$ sudo nginx -s reload
$ sudo /etc/nginx -s reload
SSL 자동 재갱신하기
$ certbot-auto renew --pre-hook "service nginx stop" --post-hook "service nginx start" --dry-run
// 크론탭으로 자동 재갱신 설정하기
crontab -e
// 파일 내부에 작성해주면 된다.
0 0 1 * * certbot-auto renew --pre-hook "service nginx stop" --post-hook "service nginx start"
// 크론탭 설정 확인
crontab -l
반응형
'DevOps > AWS' 카테고리의 다른 글
let's encrypt 인증서 갱신 안될때 (0) | 2020.11.14 |
---|