이번에는 앞서 설치한 Cent OS Nginx에 SSL 인증서를 적용해보겠습니다.
적용할 SSL 인증서는 Let’s Encrypt 로 3개월마다 인증서를 갱신해야하지만 무료로 와일드카드 인증서까지 적용할 수 있다는점에서
홈서버를 운영하는 입장에서는 필수적으로 진행하셔야합니다.
사전환경
오라클 Cent OS 7
Nginx 1.20
도메인 필요(duckdns도 가능)Cent OS에서 Nginx 설치하기.(방화벽 설정포함) 안녕하세요. 오랜만에 Cent OS 관련글입니다. 올리고당님 요건을 테스트하면서 하나씩 글을 남겨봅니다 ㅎ 저는 개…달소 | 2021.07.21Duck DNS를 이용한 무료 DNS 등록하기.이번에는 서버와 도메인을 연결해주는 DNS연결하는 방법입니다. 저는 GCP와 오라클 클라우드등에서 서버를 운영할때 편하게 사용하고있습니다. &n…달소 | 2021.03.31
1. Certbot 설치하기
nginx용 certbot를 설치해주겠습니다. 위부터 아래대로 명령어를 써주세요.
yum install epel-release
yum install certbot-nginx
설치 완료 후에는 certbot –version 로 설치를 확인할 수 있습니다.
Nginx 설정하기
이제 앞서 Nginx 설정에 도메인을 넣어주겠습니다.
저는 dalblog.duckdns.org 를 사용하겠습니다.
vi /etc/nginx/nginx.conf
에서 server 에 도메인을 넣어주세요.
적용 후 nginx -t 로 nginx 설정을 테스트하고 service nginx reload 로 리로드 시켜주면됩니다.
방화벽 설정하기.
앞서 nginx의 80번 포트를 오픈했던거와 같이 443포트도 오픈해주면 됩니다.
firewall-cmd –permanent –add-port=80/tcp
firewall-cmd –permanent –add-port=443/tcp
iptables -I INPUT -p tcp -m tcp –dport 80 -j ACCEPT
iptables -I INPUT -p tcp -m tcp –dport 443 -j ACCEPT
SSL 인증서 발급하기
아래와같은 명령어로 진행해주시면 되는데 -d 마다 도메인을 추가해주시면됩니다.
certbot –nginx -d example.com -d www.example.com
동일하게 nginx -t / service nginx reload 로 전체적으로 재시작 시켜주고 다시 웹으로 접근하면 아래처럼 잘됩니다.
https://www.ssllabs.com/ 에서도 SSL인증서 적용을 확인할 수 있습니다.Qualys SSL LabsBringing you the best SSL/TLS and PKI testing tools and documentation.ssllabs.com
인증서 자동갱신
앞서 말씀드렸듯 인증서의 경우 90일 동안 유지됩니다.
수동으로 동일하게 진행해주셔도 되지만 crontab에 내용을 추가해서 자동으로 진행하게해주셔도됩니다.
아래 명령어는 renew 테스트 명령어이며 아래처럼 성공하면 그대로 crontab에 내용을 추가해주시면됩니다.
certbot renew –dry-run
매일 6시에 인증서를 갱신하라는 명령어로 –quiet를 통해 입력값을 받지않도록 설정합니다.
vi /etc/crontab
0 6 * * * /usr/bin/certbot renew --quiet
값을 넣고 service crond restart
위 과정대로 진행해주시면 아마 큰문제는 없으실거라고 생각합니다.
안되신다면 댓글에 증상 및 스크린샷, 로그정보를 남겨주셔야 트러블슈팅이 가능합니다.[Reference] : 달소, 「서버포럼 – Cent OS에서 Nginx SSL 인증서 적용하기.(Let’s Encrypt)」 https://svrforum.com/?document_srl=52964&mid=svr&act=dispBoardContent.