반응형
CentOS에 ssl 인증서를 적용하고 nginx에 해당 인증서를 적용하여 https를 설정하는 방법이다.
Certbot 설치
yum install certbot -y
인증서 적용
standalone 옵션으로 certbot 을 실행하면 오류가 발생하므로 nginx를 정지시킨다.
systemctl stop nginx
example.com 을 도메인으로 하여 인증서를 생성하는 코드이다. 해당 코드를 실행하면 "/etc/letsencrypt/live/example.com/"에 인증서 관련 파일들이 생성된다.
certbot certonly --standalone -d example.com
nginx 설정을 다음과 같이 변경하여 nginx 에 인증서를 적용한다. ssl 인증서를 적용하여 https 를 사용하므로 http로 접속 시 https 로 리다이렉트 되도록 설정한다.
/etc/nginx/nginx.conf
server {
listen 80;
server_name example.com;
return 301 https://$host$request_uri; # redirect: http -> https
}
server {
listen 443 ssl;
server_name stove99.gihub.io;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
location / {
...
}
}
인증서 적용을 완료했으므로, nginx를 다시 시작한다.
systemctl start nginx
인증서 갱신
인증서는 유효기간이 3달이지만 문제가 생길 것을 대비해 1달마다 갱신하도록 설정한다.
다음과 같이 renewal 설정을 변경하여 인증서 갱신 시 nginx를 멈추도록 한다.
/etc/letsencrypt/renewal/example.com
...
[renewalparams]
...
## [renewalparams]에 pre_hook, post_hook 추가
pre_hook = systemctl stop nginx
post_hook = systemctl start nginx
...
crontab을 이용해 매달 인증서를 갱신하도록 한다.
crontab -e
crontab -e 실행 후 나타나는 파일에 아래 코드 입력 후 저장
## 매달 1일 인증서 갱신
0 0 1 * * /bin/bash -1 -c 'certbot renew --quiet'
이후 접속해보면 https가 적용된 것을 알 수 있다.
반응형
'Linux' 카테고리의 다른 글
리눅스 포트포워드 (1) | 2022.10.15 |
---|---|
CentOS nginx 설치 (0) | 2022.08.09 |
CentOS 7 - Jenkins 설치 (1) | 2022.04.29 |
CentOS 7 - aarch64 mirror list 설정 (0) | 2022.04.29 |
CentOS - sendmail 설정 (0) | 2022.04.28 |