SSL: CERTIFICATE_VERIFY_FAILED
SSL証明書の検証に失敗した場合のエラー
概要
HTTPS接続時にSSL/TLS証明書の検証に失敗した場合に発生するエラーです。証明書の有効期限切れ、自己署名証明書、証明書チェーンの問題などが原因です。
エラーメッセージ
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate
または
curl: (60) SSL certificate problem: certificate has expired
原因
- 証明書の期限切れ: 有効期限が過ぎている
- 自己署名証明書: 信頼されていないCA
- 中間証明書の欠落: 証明書チェーンが不完全
- CAバンドルの古さ: ローカルのCA証明書が古い
解決策
1. 証明書の確認
| |
2. Python での対処
| |
3. Node.js での対処
| |
4. curl での対処
| |
5. CA証明書の更新
| |
6. 中間証明書の設定
| |
| |
7. 自己署名証明書の作成
| |
8. Let’s Encrypt で無料証明書
| |
9. Docker での証明書
| |
10. 証明書チェーンのテスト
| |
よくある間違い
- 本番環境で証明書検証を無効化
- 証明書の更新を自動化していない
- 中間証明書を含めずに設定
- ワイルドカード証明書のドメイン範囲を誤解
関連エラー
SSL/TLS の他のエラー
この記事は役に立ちましたか?