Atlasを利用したCertbot SSL適用
Atlasを利用したCertbotによるSSL証明書の適用およびSSL期間短縮に対応するための設定の記録。
The GlobalSign Atlas Certificate Management API provides high volume certificate issuance and lifecycle management capabilities through state-of-the-art RESTful APIs.A downloadable copy of the API documentation can be found here: https://www.globalsign.com/en/repository/globalsign-atlas-certificate-management-api.pdf.
実行環境の構築 (Python 3.9)
標準の Python 3.6 ではライブラリの不整合が発生するため、Python 3.9 を使用して独立した環境を作成します。
Python 3.9 のインストール
sudo dnf install python39 -y仮想環境の作成(ディレクトリ名は任意)
sudo rm -rf /opt/certbot-globalsign
sudo python3.9 -m venv /opt/certbot-globalsign仮想環境内の pip 更新と Certbot のインストール
sudo /opt/certbot-globalsign/bin/pip install --upgrade pip
sudo /opt/certbot-globalsign/bin/pip install certbotGlobalSign ACME アカウントの登録 (EAB)
GlobalSign から発行された EAB Key ID と HMAC Key を使用して、サーバを登録します。この作業はサーバ一台につき初回の一度だけ必要です。
Bash<br>/opt/certbot-globalsign/bin/certbot register \
--server https://emea.acme.atlas.globalsign.com/directory \
--eab-kid [あなたのKey ID] \
--eab-hmac-key [あなたのHMAC Key] \
--email ssladmin@ispace.co.jp
※ 規約への同意(Y)を求められるので、画面に従って回答してください。証明書の取得 (HTTP認証 / Webroot)
DNS レコードをいじる必要はありません。Web サーバの公開ディレクトリを利用して認証を行います。
Bash<br>/opt/certbot-globalsign/bin/certbot certonly \
--server https://emea.acme.atlas.globalsign.com/directory \
--webroot \
-w /var/www/sp.aquila.jp/html \
-d sp.aquila.jp
-w: ドメインのドキュメントルート(公開ディレクトリ)を指定します。
-d: 取得するドメイン名を指定します。Web サーバへの反映 (Apache 例)
発行された証明書を Apache の設定ファイル(ssl.conf 等)に紐付けます。
証明書: /etc/letsencrypt/live/sp.aquila.jp/fullchain.pem
秘密鍵: /etc/letsencrypt/live/sp.aquila.jp/privkey.pem
Apache<br>SSLCertificateFile /etc/letsencrypt/live/sp.aquila.jp/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/sp.aquila.jp/privkey.pem
設定後、systemctl reload httpd で反映させます。自動更新の設定 (CRON)
証明書の期限(90日)が切れる前に、自動で更新して Web サーバを再読み込みするよう設定します。
00 03 * * * /opt/certbot-globalsign/bin/certbot renew --quiet --post-hook "systemctl reload httpd"--post-hook: 更新が成功したときだけ Apache をリロードします。
運用中の確認コマンド
正しく設定できているか不安なときは、以下のコマンドでテストできます。
/opt/certbot-globalsign/bin/certbot renew --dry-run/opt/certbot-globalsign/bin/certbot certificatesopenssl x509 -in /etc/letsencrypt/live/sp.aquila.jp/fullchain.pem -text -noout | grep "Issuer"