SSL certificate has expired
SSL証明書の有効期限が切れた場合に発生するエラー
概要
SSL certificate has expired は、WebサイトやAPIのSSL/TLS証明書の有効期限が切れた場合に発生するエラーです。証明書を更新するか、自動更新を設定する必要があります。
エラーメッセージ
curl: (60) SSL certificate problem: certificate has expired
SSL_ERROR_EXPIRED_CERT_ALERT
NET::ERR_CERT_DATE_INVALID
SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate has expired
原因
- 証明書の期限切れ: 有効期限が過ぎている
- 自動更新の失敗: Let’s Encrypt の更新が失敗
- 中間証明書の期限切れ: チェーン証明書が期限切れ
- システム時刻のずれ: サーバーまたはクライアントの時刻が不正
- 証明書の設定ミス: 古い証明書が参照されている
重要: 2026年以降の証明書有効期限の変更
CA/Browser Forumの決定により、SSL/TLS証明書の有効期限が段階的に短縮されます:
| 時期 | 最大有効期限 | DCV再利用期間 |
|---|---|---|
| 現在 | 398日 | 398日 |
| 2026年3月 | 200日 | 200日 |
| 2027年3月 | 100日 | 100日 |
| 2029年3月 | 47日 | 10日 |
対応策:
- 証明書の自動更新を必ず設定する
- 手動更新の場合は更新頻度を上げる
- 証明書管理の自動化ツール導入を検討
解決策
1. 証明書の有効期限を確認
| |
2. Let’s Encrypt の更新
| |
3. 自動更新の設定
| |
4. Nginx で証明書を更新
| |
| |
5. Apache で証明書を更新
| |
| |
6. 中間証明書の確認
| |
7. システム時刻の確認
| |
8. AWS Certificate Manager (ACM)
| |
9. 開発環境での対処
| |
| |
| |
10. Docker での証明書
| |
| |
証明書の更新手順
商用証明書の場合
- CSR(証明書署名要求)を生成
| |
- 認証局に CSR を提出
- 発行された証明書をダウンロード
- サーバーに設置
- Web サーバーを再起動
自己署名証明書(開発用)
| |
デバッグのコツ
証明書の詳細確認
| |
オンラインツール
- SSL Labs: https://www.ssllabs.com/ssltest/
- SSL Checker: https://www.sslshopper.com/ssl-checker.html
関連エラー
この記事は役に立ちましたか?