약 100 또는 200 개의 SSL이 있고 다른 날짜에 생성하면 어떻게 될까요?
예, 큰 문제가 있으며 Let’s Encrypt조차도 SSL 인증서가 약 30일 또는 15일 후에 만료될 때 알려줍니다.
우리는 리눅스 크론잡을 사용할 수 있고, 나는 그것을 사용한 적이 있다. 그러나 그것은 좋은 생각이 아닙니다.
더 좋은 방법은 systemd 서비스와 systemd timer 를 사용하는 것입니다.
systemd.service 및 systemd.timer를 만들어 Let’s Encrypt SSL 인증서를 갱신합니다.
우리는 새로운 Let’s Encrypt SSL 인증서를 얻을 때 Certbot을 독립형으로 사용합니다.
갱신 구성은 /etc/letsencrypt/renewal에 있습니다.
이제 /etc/letsencrypt/renewal 파일을 확인합니다(예: /etc/letsencrypt/renewal/serverdiary.com.conf).
# renew_before_expiry = 30 days
version = 1.0.0
archive_dir = /etc/letsencrypt/archive/serverdiary.com
cert = /etc/letsencrypt/live/serverdiary.com/cert.pem
privkey = /etc/letsencrypt/live/serverdiary.com/privkey.pem
chain = /etc/letsencrypt/live/serverdiary.com/chain.pem
fullchain = /etc/letsencrypt/live/serverdiary.com/fullchain.pem
# Options used in the renewal proces
[renewalparams]
authenticator = webroot
account = hidden
server = https://acme-v02.api.letsencrypt.org/directory
webroot_path = /home/serverdiary/public_html
post_hook = systemctl restart nginx
[[webroot_map]]
webroot_path 동일하기 때문에 webroot_map에 대한 구성이 없습니다.
webroot_path가 다른 단일 SSL에 대한 webroot_map 예
[[webroot_map]]
serverdiary.com = /home/serverdiary/public_html
www.serverdiary.com = /home/serverdiary/public_html
img.serverdiary.com = /home/serverdiary/public_html/img
/etc/systemd/system/letsencrypt.service 파일을 만듭니다.
# vi /etc/systemd/system/letsencrypt.service
그리고 아래에 코드를 붙여 넣으십시오.
[Unit]
Description=Certbot Renewal
[Service]
ExecStart=/usr/local/bin/certbot renew --post-hook "systemctl reload nginx"
/etc/systemd/system/letsencrypt.time 파일을 만듭니다.
# vi /etc/systemd/system/letsencrypt.timer
아래에 코드를 붙여 넣으십시오.
[Unit]
Description=Timer for Certbot Renewal
[Timer]
OnBootSec=300
OnUnitActiveSec=6h
[Install]
WantedBy=multi-user.target
사용 권한을 755로 변경합니다.
# chmod 755 /etc/systemd/system/letsencrypt.service
# chmod 755 /etc/systemd/system/letsencrypt.timer
sysmctl 데몬을 다시 로드하고, 시스템 시작 시 활성화하고, 다음 명령으로 서비스를 시작합니다.
# systemctl daemon-reload
# systemctl enable /etc/systemd/system/letsencrypt.service
# systemctl enable /etc/systemd/system/letsencrypt.timer
# systemctl start /etc/systemd/system/letsencrypt.service
# systemctl start /etc/systemd/system/letsencrypt.timer
Letsencrypt.timer는 6시간마다 Letsencrypt.service를 호출하고 SSL이 하나 성공적으로 갱신되면 Nginx 서비스가 다시 시작됩니다.
이제 Let’s Encrypt SSL 만료 시간을 잊을 수 있습니다. 그러나 때로는 웹사이트의 SSL이 갱신되었는지 확인하는 것을 잊지 마십시오.