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

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

関連記事

no image

ソフトマックス関数の微分の導出をご紹介

  <目次> (1) ソフトマックス関数の微分の導出をご紹介  (1-1) ソフトマックス関数とは?  (1-2) ソフトマックス関数の微分(一般式)  (1-3) ソフトマックス関数の微分 …

hostsファイルとは?書き換えや反映の手順をご紹介(Windows編)

<目次> (1) hostsファイルとは?書き換えや反映の手順をご紹介(Windows編)  (1-1) hostsファイルとは?  (1-2) hostsファイルの主な用途  (1-3) hosts …

USBブートのやり方(Windows 10)と起動しない時の確認項目について

  <目次> (1) USBブートのやり方(Windows 10)と起動しない時の確認項目について  (1-1) USBブートとは?  (1-2) USBブートのやり方(手順)  (1-3) …

OpenAIのEmbeddingの使い方

  <目次> (1) OpenAIのEmbeddingの使い方  (1-1) やりたいこと  (1-2) 概要:OpenAIのEmbeddingとは?  (1-3) STEP1:サンプルコー …

APIの難しい部分を吸収し、手軽に検証するためのツール(Postman)をご紹介

  <目次> (1) APIの難しい部分を吸収し、手軽に検証するためのツール(Postman)をご紹介  (1-1) Postmanの概要  (1-2) Postmanの導入手順  (1-3 …

  • English (United States)
  • 日本語
Top