以下のような nginx などWEBサーバでの鍵の位置指定。
ssl_certificate /etc/letsencrypt/live/android.benigumo.com/fullchain.pem
ssl_certificate_key /etc/letsencrypt/live/android.benigumo.com/privkey.pem
これが、ファイルの実体だと更新時にコケる。
シンボリックリンクでないとならない。
証明書を確認してみると分かる。
# certbot-auto certificates
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Renewal configuration file /etc/letsencrypt/renewal/android.benigumo.com.conf produced an unexpected error: expected /etc/letsencrypt/live/android.benigumo.com/cert.pem to be a symlink. Skipping.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Found the following certs:
Certificate Name: android.benigumo.com-0001
Domains: android.benigumo.com
Expiry Date: 2019-07-19 02:41:22+00:00 (VALID: 89 days)
Certificate Path: /etc/letsencrypt/live/android.benigumo.com-0001/fullchain.pem
Private Key Path: /etc/letsencrypt/live/android.benigumo.com-0001/privkey.pem
The following renewal configurations were invalid:
/etc/letsencrypt/renewal/android.benigumo.com.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
期限の更新できたつもりが、
謎の「0001」な 証明書が追加発行されとる。
# ls -al /etc/letsencrypt/live/android.benigumo.com
drwxr-xr-x 2 ubuntu ubuntu 4096 Mar 1 00:01 .
drwx------ 4 ubuntu ubuntu 4096 Apr 20 12:33 ..
-rw-r--r-- 1 ubuntu ubuntu 2269 Mar 1 00:00 cert.pem
-rw-r--r-- 1 ubuntu ubuntu 1647 Mar 1 00:00 chain.pem
-rw-r--r-- 1 ubuntu ubuntu 3916 Mar 1 00:00 fullchain.pem
-rw-r--r-- 1 ubuntu ubuntu 3272 Mar 1 00:00 privkey.pem
サーバ移行のファイルコピー時に実体化されたっぽい。
シンボリックリンクにする。
複数ある場合は一番新しいものがリンク元となるのが正しい。
# cd /etc/letsencrypt/live/android.benigumo.com/
# rm *
# ln -s ../../archive/android.benigumo.com/cert30.pem cert.pem
# ln -s ../../archive/android.benigumo.com/chain30.pem chain.pem
# ln -s ../../archive/android.benigumo.com/fullchain30.pem fullchain.pem
# ln -s ../../archive/android.benigumo.com/privkey30.pem privkey.pem
# ls -al
lrwxrwxrwx 1 root root 45 Apr 21 08:19 cert.pem -> ../../archive/android.benigumo.com/cert30.pem
lrwxrwxrwx 1 root root 46 Apr 21 08:19 chain.pem -> ../../archive/android.benigumo.com/chain30.pem
lrwxrwxrwx 1 root root 50 Apr 21 08:19 fullchain.pem -> ../../archive/android.benigumo.com/fullchain30.pem
lrwxrwxrwx 1 root root 48 Apr 21 08:19 privkey.pem -> ../../archive/android.benigumo.com/privkey30.pem
追加登録されている0001を削除して期限更新をかける。
# certbot-auto delete --cert-name android.benigumo.com-0001
# certbot-auto renew --dry-run
# certbot-auto renew
# certbot-auto certificates
Saving debug log to /var/log/letsencrypt/letsencrypt.log
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Found the following certs:
Certificate Name: android.benigumo.com
Domains: android.benigumo.com
Expiry Date: 2019-07-19 22:19:07+00:00 (VALID: 89 days)
Certificate Path: /etc/letsencrypt/live/android.benigumo.com/fullchain.pem
Private Key Path: /etc/letsencrypt/live/android.benigumo.com/privkey.pem
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
よし。
Let's Encrypt で '-0001' がついた証明書データを削除する方法 | ラボラジアン
Let's Encrypt(certbot)でrenewしたら"expected /etc/letsencrypt/live/~/cert.pem" | KINの雑記帳