Linux

CentOS let's encrypt ssl 인증서 적용 + nginx 적용

Hwisaek 2022. 10. 15. 10:32
반응형

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