サーバ証明書更新自動化マニュアル

サーバ証明書の有効期間は、
2026年3月からは発行日から200日
2027年3月からは発行日から100日
2029年3月以降は発行日から47日
と徐々に短くなります。
手動更新を継続すると、非常に手間がかかることになりますので、早めの自動化をお勧めします。

ここでは、ACMEという仕組みを利用してサーバ証明書を自動更新するための方法を解説します。

HTTP-01チャレンジ方式

該当サーバのhttp(80ポート)、https(443ポート)が外部に対して開いている必要があります。

Linux

certbotの準備

certbotはsnap版の動作が安定しているため、snap版でのインストール方法を解説します。

  1. snapインストール
  2. sudo dnf install snapd -y RedHat系
    sudo apt install snapd -y Debian系

  3. snapdをsystemtlに登録・有効化
  4. sudo systemctl enable --now snapd.socket

  5. snapコマンドを使えるようにシンボリックリンク作成
  6. sudo ln -s /var/lib/snapd/snap /snap

  7. snapでcertbotをインストール
  8. sudo snap install --classic certbot

  9. certbotコマンドを使えるようにシンボリックリンク作成
  10. sudo ln -s /snap/bin/certbot /usr/bin/certbot

certbot実行~証明書登録作業~

    NIIから発行されたコマンド(情報システム課が提供したコマンド)をそのまま実行
    sudo certbot --server https://secomtrust-acme.com/acme/ --eab-hmac-key XXXXXXXXXXXXXXXXXXX --eab-kid XXXXX -d ○○.yamanashi.ac.jp --key-type rsa

    質問が来るので、以下の通り対応します。
    ・apacheか、nginxかを選択し番号をEnter
    ・email:何も入力せずEnterで問題ありません
    ・Do you agree?:YでEnter

    上記で自動的にconfファイルに証明書情報が書き換えられて、webサーバがリロードされます。

certbotがwebサーバの設定を自動確認できずエラーが起こる場合

  1. まず以下のコマンドで証明書だけを取得します。
  2. sudo certbot certonly --webroot -w ドキュメントルート --server https://secomtrust-acme.com/acme/ --eab-hmac-key XXXXXXXXXXXXXXXXXXX --eab-kid XXXXX -d ○○.yamanashi.ac.jp --key-type rsa
    ※ドキュメントルートはwebサーバにて設定しているconfファイルのDocumentRootの行を参照してください。

  3. 取得に成功すると、以下のように証明書・秘密鍵のパスが表示されます。
  4. Certificate is saved at: /etc/letsencrypt/live/docs.yamanashi.ac.jp/fullchain.pem
    Key is saved at: /etc/letsencrypt/live/docs.yamanashi.ac.jp/privkey.pem

  5. 証明書を指定するconfファイル(ssl.conf等)を設定します。
  6. ※中間証明書は証明書ファイル(fullchain.pem)に含まれますので、中間証明書を別途confファイルで指定している場合は、その行を削除・またはコメントアウトしてください。

  7. webサーバをリロードすると新しい証明書が適用されます。

確認作業

証明書確認

証明書を使用しているサーバ(ウェブサイト等)にアクセスして、取得した証明書が適用され、エラーが起こっていないことを確認する。

自動更新確認

sudo systemctl status snap.certbot.renew.timer
タイマーがactiveになっていればOK。

自動更新のシミュレーション
sudo certbot renew --dry-run
Congratulations, all simulated renewals succeeded: などが出ていればOK。

Windows Server

win-acmeの準備

ダウンロード

win-acmeのサイトから、zipファイルをダウンロードし、所定のフォルダに展開します。

設定変更

setting.jsonのCsr RsaのKeyBitsを2048に変更し上書き保存します。

win-acme実行~証明書登録作業~

PowerShellでwin-acmeのフォルダに移動し、情報システム課から提供されたwacsコマンドを実行します。
.\wacs.exe --baseuri "https://secomtrust-acme.com/acme/" --accepttos --eab-key-identifier XXXXXXXXXX --eab-key XXXXXXXXXXXXXXXXXXXXXXXX

対話モードに入ります。
はじめは「N」を選択してEnter。
IISで更新対象のサイトがバインドされていれば、そのままEnterを押し続けるとデフォルトの選択で進み、自動的に証明書が自動取得されます。

※上記選択は、それぞれの環境に合わせて適宜対応してください。

確認作業

証明書確認

証明書を使用しているサーバ(ウェブサイト等)にアクセスして、取得した証明書が適用され、エラーが起こっていないことを確認する。

自動更新確認

PowerShellで以下のコマンドを打ち、更新のスケジュールが組まれていればOK。
Get-ScheduledTaskInfo -TaskName "win-acme renew (secomtrust-acme.comacme)"

DNS-01チャレンジ方式

Linux

準備中

Windows Server

準備中