私は自分の Web サイトの SSL 証明書を生成するために certbot を使用しています。自動更新が機能しないという問題が発生しました (cron スクリプト エラーと古い python2 が原因でしたが、現在は解決されています)。現在、サーバー上に最新のライセンス ファイルがあります。
ライセンス ファイルは letsencrypt の下のアーカイブにあり、更新ごとに番号が増加するようです (fullchain3 が最新です)。
root@mysite /etc/letsencrypt/live/mysite.com # ls -l ../../archive/mysite.com/ total 48K -rw-r--r-- 1 root root 3.4K Sep 8 2017 fullchain1.pem -rw-r--r-- 1 root root 3.5K May 8 17:02 fullchain2.pem -rw-r--r-- 1 root root 3.5K Jul 7 21:19 fullchain3.pem
シンボリックリンクは最新のものを指し、lighty はリンクをたどるように設定されています。
root@mysite /etc/letsencrypt/live/mysite.com # ls -l ../../live/mysite.com/fullchain.pem lrwxrwxrwx 1 root root 39 Jul 7 21:19 ../../live/mysite.com/fullchain.pem -> ../../archive/mysite.com/fullchain3.pem
しかし、SSLLabs は私の証明書が古くなっていると伝え、ライセンス ファイルのシリアル番号を確認すると、fullchain2.pem が取得されていることがわかりました。
Lighty が再起動されました。mod-compress は実行されていますが、再起動しても古い証明書ファイルがキャッシュされる可能性がありますか? もしそうなら、それをしないようにするにはどうすればいいですか? そうでない場合、原因は何ですか?
更新: 軽く停止し、キャッシュ ディレクトリをクリアして再起動してみました。結果は同じで、同じファイルが提供されるようです...
答え1
はい、問題は解決しました。
lighty の場合、証明書を更新した後、追加の手順が必要です。基本的に、証明書ディレクトリ内の 2 つのファイルを連結して、新しいファイルを手動で作成する必要があります。以下のリンクを参照してください。
https://www.bytebang.at/Blog/Free+SSL+certificate+for+lighttpd+with+letsencrypt
これを行わないと、lighty のエラー ログに「証明書の有効期限が切れました」というメッセージがいっぱいになります。
(ここでは完全なセットアップ手順は説明しませんが、基本的には、証明書を更新した後、次の操作を行う必要があります。
cat privkey.pem cert.pem > web.pem
これは次の行と一致するはずである
ssl.pemfile = "/etc/letsencrypt/live/mysite.com/web.pem"
あなたの軽い構成で。
以下で指摘されているように、最新の lighty で連結されたファイルを実際に使用する必要はありませんが、(それ以外は安定した) 構成を変更するのではなく、証明書の更新を管理し、連結ファイルを作成するための簡単な bash スクリプトを作成しました。
#!/bin/bash
function update_web { cd $1 if [ web.pem -ot cert.pem ]; then echo updating web.pem in $1 cat privkey.pem cert.pem > web.pem fi }
/root/certbot/certbot-auto renew --no-self-upgrade update_web /etc/letsencrypt/live/mysite.com update_web /etc/letsencrypt/live/www.mysite.com