サイト運営を目標に現在勉強中です。
浅学ゆえの未熟な質問、ご容赦ください。
ご助力いただけますと大変助かります。
前提・実現したいこと
- cerbotプラグインでLet's Encryptの証明書を自動更新する(DNS-01チャレンジ)。
- 証明書が更新された際に、下記を自動で実施したい
-
- dockerで構成しているウェブサーバに証明書更新を反映
-
- ウェブアクセラレータに登録している証明書を最新の証明書に自動更新
<利用サービス>
DNS:Gehirn DNS
サーバ:さくらのVPS
CDN:さくらのウェブアクセラレータ
できなかったこと・困っているところ
cerbotプラグインで証明書を自動更新するところまではできました。
そのため、次は以下を達成したいと考えております。
(1)dockerで構成しているウェブサーバに証明書更新を反映
Let's Encryptの証明書はホスト側で証明書を更新しているので、
docker側で証明書の更新を反映しなければいけないと認識しています。
dockerの証明書は、ホスト側に配置しているディレクトリを以下のようにdockerコンテナに共有していますが、
証明書の更新を即時反映するにはどのようなアプローチをとるのがスマートでしょうか。
浅学で思いつくイメージとして、
cerbotプラグインで証明書更新実行時に単純にdockerコンテナの再起動を実施するコマンドを実行してみたのですが、
コンテナIDが再実行時に変更される関係でログにエラーが出力されて気持ち悪いな…と思ったので、
みなさんはどのようなアプローチをとっていらっしゃるのかな、と…。お手数ですが、ご教授いただきたいです。
他に私が自力で思いつくのは、dockerコンテナを事前に自動起動する設定にしておいた上で、証明書更新時にコンテナの再起動ではなくて停止させる、くらいだったので…。
services: nginx-proxy: image: jwilder/nginx-proxy container_name: nginx-proxy ports: - "80:80" - "443:443" volumes: - /var/run/docker.sock:/tmp/docker.sock:ro - /etc/nginx/ssl:/etc/nginx/dhparam:ro - /etc/letsencrypt/live/hogehoge.com:/etc/letsencrypt/live/hogehoge.com:ro - /etc/letsencrypt/archive/hogehoge.com:/etc/letsencrypt/archive/hogehoge.com:ro - /etc/certs:/etc/nginx/certs:ro networks: - common_link networks: common_link: external: name: common_link (※ディレクトリパスは一部実際に使用しているものと変更しています)
(2)ウェブアクセラレータに登録している証明書を最新の証明書に自動更新
ウェブアクセラレータでは、証明書が登録できるのですが、
そちらは現在、手動でコピーアンドペーストで貼り付けている状態です。
ここを自動化したいと考えています。
さくらのウェブアクセラレータには、APIで証明書を更新する機能があるようなので、
機能的にはできると思うのですが、方法がよくわかりません。
検索はしてみたものの、証明書の更新と同時に実行するようなものが多く、
私が実行したい、証明書を別で更新した後に、ウェブアクセラレータに登録している証明書を更新するというイメージに
そぐわないものが多かったです。
応用すればできるのかもしれないですが、そこまでの応用力がなく…。
ご教授いただければ幸いです。
以上よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー