Let’s Encryptの証明書更新エラー完全解決ガイド

ssl-err-cert-date-invalid
  • URLをコピーしました!

クラウド環境で運用するウェブシステムにおいて、SSL証明書の管理は重要なセキュリティ対策の一つです。
特に無料で利用できるLet’s Encryptは多くの開発者やシステム管理者に活用されていますが、自動更新がうまく機能せず、証明書の期限切れによるアクセスエラーが発生することがあります。

本記事では、AWS EC2環境で発生したLet’s Encrypt証明書の更新エラーとその解決方法について詳しく解説します。
特にポート80が既に使用されている状況での対処法に焦点を当てます。

目次

証明書期限切れエラー

ある日、管理システムにアクセスしようとしたところ、ブラウザに「ERR_CERT_DATE_INVALID」というエラーが表示されました。
これはSSL証明書の期限が切れていることを示すエラーです。

このエラーが表示されると、ユーザーは警告メッセージを目にすることになり、セキュリティ上の懸念から多くの場合アクセスを中止してしまいます。
そのため、迅速な対応が求められます。

証明書の状態確認

まず、現在の証明書の状態を確認するために、サーバーで以下のコマンドを実行します。

上記の結果から、証明書が「INVALID: EXPIRED」(無効:期限切れ)の状態であることが確認できました。
Let’s Encryptの証明書は通常90日間有効で、その後更新が必要になります。

更新エラーの原因

証明書の更新を試みるために、以下のコマンドを実行しました。

しかし、以下のようなエラーメッセージが表示されました。

このエラーメッセージから、ポート80が既に他のプロセス(通常はウェブサーバー)によって使用されているため、certbotが証明書の更新に必要な認証チャレンジを実行できないことがわかりました。
自動更新タイマーの状態も確認しましょう。

タイマーは正常に設定されているものの、実際の更新処理ではポート80の使用権限の問題で失敗していることが判明しました。

ウェブルート方式への変更

Let’s Encryptの証明書更新方式には、主にスタンドアロン方式ウェブルート方式があります。
スタンドアロン方式はcertbot自身がポート80を使用して認証を行うため、既にウェブサーバーが稼働している環境では競合が発生します。
これを解決するには、ウェブルート方式に変更することで、ウェブサーバーを停止せずに証明書の更新が可能になります。

/var/www/htmlの部分は実際のウェブルートディレクトリに合わせて変更してください。

この方法では、.well-knownディレクトリにチャレンジファイルを配置し、Let’s Encryptの認証サーバーがそのファイルにアクセスすることで所有権の確認を行います。

設定ファイルの編集

更新方式を恒久的に変更するには、certbotの設定ファイルを編集します。

ファイル内で以下の行を探し、変更または追加します。

さらに、システムユニットファイルの変更を反映するために以下のコマンドを実行します。

設定変更後、以下のコマンドで更新処理のテストを行います。

問題がなければ、実際の更新を実行します。

一時的なウェブサーバー停止

上記の方法が実装できない場合や、他の理由でウェブルート方式が使用できない場合は、更新時だけ一時的にウェブサーバーを停止する方法もあります。

この方法はシンプルですが、更新中に短時間サービスが停止するため、可能であれば前述のウェブルート方式を検討してください。

自動更新の設定確認

Let’s Encryptの証明書は90日間有効であり、通常は有効期限の30日前から更新できるようになります。
certbotのタイマーが正しく設定されているか以下のコマンドで確認します。

タイマーが有効になっていれば、定期的に更新コマンドが実行されますが、今回のようにポート80の問題があると更新に失敗します。そのため、前述の解決方法で更新方式を変更することが重要です。

更新後は、ウェブサーバーを再起動して新しい証明書を読み込ませます。

まとめ

Let’s Encryptの証明書更新エラーは、主にポート80の競合が原因で発生します。

  1. ウェブルート方式への変更
    ウェブサーバーを停止せずに証明書を更新する最も推奨される方法
  2. 設定ファイルの編集
    恒久的に更新方式を変更して自動更新を確実にする方法
  3. 一時的なウェブサーバー停止
    他の方法が使用できない場合の代替策

これらの対策を実施することで、SSL証明書の期限切れによるサービス障害を防ぎ、セキュアな接続を維持することができます。
定期的な監視と適切な更新方式の選択が、安定したウェブサービス運用の鍵となります。

SSL証明書管理の自動化は、システム管理者の負担を軽減し、エラーを防止するために重要です。
本記事が皆様のシステム運用の一助となれば幸いです。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次