WebARENAの使い方 – (ドメイン更新:Let’s Encrypt でSSL化)
ここではWebArenaに構築したSSL環境(SSLは無料のLet’s Encryptを使用 )の有効期限更新します。
WebARENAは、安い・早い・美味いの三拍子がそろったVPSクラウドです。
取得の際に環境汚染を避けるためにDockerを利用しており、更新もDockerを利用します。前回のSSL環境構築は以下の記事を参考にしてください。
最安VPSでマルチドメインサイト構築(ドメイン準備:Let’s Encrypt でSSL化)
WebARENAの準備や、Let’s Encrypt の取得、SSH接続などは以下の記事を参考にしてください。
最安VPSでマルチドメインサイト構築(WebArena + Docker + Let’s Encrypt)
Let’s Encryptの有効期限を確認
ブラウザでサイトにアクセスし、アドレスバーの先頭にある鍵マークをクリックすると、サイト証明書の有効期限を確認できます。
以下では2019/8/31までになっています。あと20日後Letsですね。
証明書の更新コマンドの準備
以前、証明書取得の時に使ったコマンドを、更新用に書き換えて使います。
最安VPSでマルチドメインサイト構築(ドメイン準備:Let’s Encrypt でSSL化)
XXXXXXXXの個所は、サイトに合わせて変更してください。また「– dry-run」での実行がOKであったら、「–dry-run」を消して本番実行をします。
docker run -it --rm \ --name certbot \ -v "/etc/letsencrypt:/etc/letsencrypt" \ -v "/var/lib/letsencrypt:/var/lib/letsencrypt" \ certbot/certbot certonly \ --manual \ -d *.XXXXXXXX.com \ -m XXXXXXXX@XXXXXX.com \ --agree-tos \ --renew-by-default \ --manual-public-ip-logging-ok \ --preferred-challenges dns-01 \ --server https://acme-v02.api.letsencrypt.org/directory
WebARENAに接続してコマンド実行
WebARENAにSSHで接続します。
ssh -p 999999 XXXXXXX@000.000.000.000 -i .\id_rsa_webarena_XXXXXXX
コマンドを実行します。
以下の記事と同じ手順になります。
最安VPSでマルチドメインサイト構築(ドメイン準備:Let’s Encrypt でSSL化)
成功すると、以下の情報が表示されます。
WEBサーバーを再起動します。運用しているサイトはdocker上にnginxをリバースプロキシとして立てているので、
docker-compose down #停止 docker-compose up -d #再起動
SSL証明書の有効期限確認
確認すると、2019/11/9まで延長されていました。
まとめ
めでたし、めでたし
まとめ記事に戻る:WebARENAの使い方 – 最安VPSでサイト構築(Docker + Let’s Encrypt)
【参考】更新に失敗した話
コマンドの実行(dry-runモード)
docker run -it --rm \ --name certbot \ -v "/etc/letsencrypt:/etc/letsencrypt" \ -v "/var/lib/letsencrypt:/var/lib/letsencrypt" \ certbot/certbot renew \ --dry-run
エラー( PluginError )発生
Cert is due for renewal, auto-renewing…
Could not choose appropriate plugin: The manual plugin is not working; there may be problems with your existing configuration.
The error was: PluginError(‘An authentication script must be provided with –manual-auth-hook when using the manual plugin non-interactively.’,)
証明書は、更新、自動更新の対象です… 適切なプラグインを選択できませんでした:手動プラグインが機能していません。既存の構成に問題がある可能性があります。 エラーは:PluginError( ‘非手動で手動プラグインを使用する場合は、-manual-auth-hookで認証スクリプトを提供する必要があります。’、)
原因
- ワイルドカードを使い、サブドメインをまるっとTLS化している
- ワイルドカード証明書の発行には、TXTレコードの書き換えが必要
- その場合、renewでの自動更新はできないため、手動(マニュアルモード)で行う
- 参考:https://qiita.com/fruitriin/items/3e3e330df04a1891dc46
- 参考:https://k5342.hatenablog.com/entry/2018/04/07/002456
対策
上記の通り、取得時と同じようにマニュアルモードで更新しました。そのうち、だれか偉い人がいいやり方を公開してくれると信じてます。