Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

IT技術 (Technology)

[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate has expiredエラーの原因と対処

投稿日:2023年8月26日 更新日:

 

<目次>

[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate has expiredエラーの原因と対処
 エラー概要
 原因
 対処
 (備考)どの証明書が更新されたか?の確認方法
 (補足)「`certifi`パッケージ」と「`certlm.msc`」の違い

[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate has expiredエラーの原因と対処

エラー概要

ERROR:slack_bolt.App:Failed to send a request to Slack API server: 
~中略~
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate has expired (_ssl.c:997)

(図110)

目次にもどる

原因

証明書の検証に失敗していることを示しています。これは、以下のいずれかが原因になります。
・①通信先のサーバーの証明書が期限切れになっている
・②クライアント側の証明書ストア(Python用のルート証明書ストア)が更新されていない

(補足)
`certifi`パッケージをインストールした環境で、以下のコマンドを実行することで、現在の証明書ストアに含まれる証明書の一覧を表示することができます。
 
(図312)

対処

●クライアント側の証明書ストアを更新する
Python用のルート証明書ストアである`certifi`パッケージが更新されます(最新の証明書を取得)。これにより、Pythonアプリケーションで使用されるルート証明書が最新のものになります。
 
(コマンド)
> pip install --upgrade certifi

 

(図311)

(備考)どの証明書が更新されたか?の確認方法

●方法①

`certifi`パッケージのGitHubリポジトリのコミット履歴を確認することができます。以下のURLからリポジトリにアクセスし、コミット履歴を確認してください。
 

●方法②

`certifi`パッケージはMozillaのルート証明書ストアをもとにしていますので、最新の証明書情報はMozillaのリポジトリで確認することもできます。
https://github.com/mozilla-services/ca_certs_crlite
 

●方法③

また、`certifi`パッケージをインストールした環境で、以下のコマンドを実行することで、現在の証明書ストアに含まれる証明書の一覧を表示することができます。
 
(図312)

(補足)「`certifi`パッケージ」と「`certlm.msc`」の違い

混同しやすいですが、Python用のルート証明書ストア(`certifi`パッケージ)と、`certlm.msc`で見られるWindowsのクライアント側の証明書ストアは、別のものです。

(表)

Pythonのcertifiパッケージ Pythonアプリケーションで使用されるルート証明書ストアで、特にWindows以外の環境や、独自の証明書ストアを使用する場合に役立ちます。`certifi`は独立したパッケージとして管理されており、`pip`を使ってインストールやアップデートができます。
`certlm.msc`で見られるWindowsのクライアント側の証明書ストア Windowsシステム全体で使用される証明書ストアです。このストアは、Windowsのセキュリティ設定やアップデートによって管理されています。

ただし、Pythonアプリケーションでは、Windowsの証明書ストアを使用する代わりに`certifi`パッケージを利用することができます。これにより、Pythonアプリケーションの証明書検証を独自に管理することが可能になります。

目次にもどる

Adsense審査用広告コード


Adsense審査用広告コード


-IT技術 (Technology)
-

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

アジャイル開発のスクラム手法の流れや進め方について

  <目次> (1) アジャイル開発のスクラム手法の流れや進め方について  (1-1) スクラムとは?  (1-2) スクラムの流れ  (1-3) スクラムにおける「バックログ」の単位につい …

Slackで匿名のメッセージや返信を送る方法

  <目次> (1) Slackで匿名のメッセージや返信を送る方法  (1-1) 概要  (1-2) STEP1:Anonymity Botの導入  (1-3) STEP2:匿名投稿のテスト …

no image

P2P(Procure to Payment)とは?概要や流れをご紹介

  <目次> (1) P2P(Procure to Payment)とは?概要や流れをご紹介  (1-1) 概要  (1-2) 流れ   ●①必要性チェック(Indentify Needs) …

プロセスとは? Linuxの例も交えてご紹介

  <目次> (1) プロセスとは? Linuxの例も交えてご紹介  (1-1) プロセスとは?  (1-2) プロセスの構成要素  (1-3) プロセスの状態遷移 (1) プロセスとは? …

SlackのRequest URLで「Your URL didn’t respond with the value of the challenge parameter.」エラーが出た時の対処方法

  <目次> (1) SlackのRequest URLで「Your URL didn’t respond with the value of the challenge par …

  • English (United States)
  • 日本語
Top