QUICクラスターをデプロイした後、最初に要求されたhttps証明書の有効期限が切れたため、証明書を再インストール/更新しようとしました。
Let's Encryptは、https証明書を自動的に発行する無料のプロジェクトです
。Certbotは、Let'sEncryptが推奨する公式の証明書生成クライアントツールです。
私のquicクラスターは元の証明書をカスタムディレクトリに直接コピーするため、certbotがインストールされていないため、最初にcertbotをインストールします。
Certbotをインストールします
独自のLinuxシステム(私の場合はRed Hat Enterprise Linux 8)に従って、snapdを最初にインストールし、対応するsnapdインストールチュートリアルを選択します
snapdをインストールします
$ sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
$ sudo dnf upgrade
$ sudo yum install snapd
ソフトリンクを作成する
$ sudo systemctl enable --now snapd.socket
$ sudo ln -s /var/lib/snapd/snap /snap
Certbotをインストールします
## 更新snap到最新的版本
sudo snap install core
sudo snap refresh core
## 去除其余Certbot操作系统包 确保安装后使用certbot命令使用的是snap
sudo apt-get remove certbot
sudo dnf remove certbot
sudo yum remove certbot
sudo snap install --classic certbot
#创建软链接
sudo ln -s /snap/bin/certbot /usr/bin/certbot
証明書を更新する
古い証明書をマシンに保存しているので、最初は古い証明書を直接更新することを考えていました。まず、certbot certificates
現在のサーバーの証明書情報を確認しました
が、現在の証明書情報が返されませんでした。証明書を移行したときにnginxの構成に必要なpemファイルのみを移行したためと思われます。また、ストレージパスも、古いクラスターが証明書をインストールしたときのデフォルトパスとは異なります。
すべてのファイルを元の証明書パス/ etc / letsencryptの下にパッケージ化し、新しいクラスターのNginxマシンの同じパスにアップロードしてから、certbot certificates
証明書の確認を使用して古い証明書を確認し
、certbot renew
コマンドを使用して証明書を更新しました。 。
発生した問題:
証明書を更新する
と、ドメイン名の所有権を確認するためにxxx / .well-known / acme-challenge / xxxにアクセスすると接続が失敗するという、報告されたエラーが発生します。
awsによってデプロイされたnginxクラスターはドメイン名をロードバランサーにバインドするため、ロードバランサーは最初にquicのポート443のみをリッスンしました。リスニングポート80を追加した後、接続できないことを求めるプロンプトは表示されなくなり、404が返されます。エラーコード。
上記のパスにアクセスできないためと判断され、何度も試行した結果、パスが一致しませんでした。最後に、このリクエストはドメイン名の所有権を確認するためのものだと思いましたが、ドメイン名をロードバランサーにバインドしました。 、証明書を更新したサーバーではありません。、ドメイン名をサーバーIPにバインドして再実行するcertbot renew
と、更新は成功します。
新しい証明書のパスが前の証明書と異なるため、nginx構成ファイルの証明書パスを次のように変更する必要があります。
ssl_certificate /etc/letsencrypt/live/you.domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/you.domain.com/privkey.pem;
証明書を更新した後、ドメイン名をロードバランサーにバインドします
Letencrypt証明書要求の頻度制限
https://letsencrypt.org/zh-cn/docs/rate-limits/
ドメインごとに1時間ごとにアカウントごとに5回の検証失敗の制限があります。テスト環境では制限が高くなります(1時間あたり60回の検証失敗が許可
されます)登録済みドメイン名ごとに1週間に最大5つの重複証明書の制限
そのため、certbot renewコマンドを繰り返し使用すると、上限に達したというプロンプトが表示される場合があります。しばらくしてからもう一度お試しください。
結局、証明書を移行して更新しただけですが、この操作のその後の更新にはまだ問題があり(ドメイン名は対応するサーバーIPにバインドする必要があります)、さらに厄介です。
フォローアップは引き続き調査され、適切な解決策があればブログが更新されます。同様の問題に対処したことがある場合は、それを共有できます
支配资料:
Red Hat Enterprise Linux(RHEL)へのスナップのインストールCentOS / RHEL8では
上記のいずれでもない