let’s暗号化自動更新

1819 ワード

certbotインストールプロセスをスキップ
リリース方法
Webroot方式でドメイン所有権を検証および発行する方法を選択します.
nginx設定
server {
        listen 80;
        server_name yourdomain.com www.yourdomain.com;
        
        location ^~ /.well-known/acme-challenge/ {
                default_type "text/plain";
                root /var/www/letsencrypt;
        }
}
上記のように、ドメインルートディレクトリへのアクセスを提供し、このパスをParamerに渡します.
/var/www/letsencryptパスが作成されていない場合、エラーが発生します.
sudo certbot certonly --webroot -w /var/www/letsencrypt -d www.mydomain.io -d api.mydomain.io
リリース後にnginxを再設定する
server {
        listen 80;
        server_name mydomain.io www.mydomain.io;

        location ^~ /.well-known/acme-challenge/ {
                default_type "text/plain";
                root /var/www/letsencrypt;
        }
        location / {
                return 301 https://www.mydomain.io;
        }
}

server {

        listen 443 ssl default_server;
        listen [::]:443 ssl default_server;
        ...
        
        server_name www.mydomain.io;
        ssl_certificate /etc/letsencrypt/live/www.mydomain.io/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/www.mydomain.io/privkey.pem;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ...
}
        
自動更新
sudo crontab -e
# utc+0기준으로 18시는 우리나라 시간으로 새벽 3시 / 마지막 숫자 1은 월요일(0~6) 일요일~토요일
# 아래 명령어는 월요일 새벽3시(우리나라기준) 실행되며 갱신 시 nginx재시작.
0 18 * * 6 /snap/bin/certbot renew --renew-hook="sudo systemctl restart nginx"
その他のコマンド
# cerbot 위치 확인
$ which certbot 

# Crontab 보기
$ sudo crontab -l

# Crontab 편집
$ sudo crontab -e

# Crontab 실행 로그
$ view /var/log/syslog