Pythonのurllib.requestでSSLエラー「CERTIFICATE_VERIFY_FAILED」が出た時の解決方法

Pythonのurllib.requestでSSLエラー「CERTIFICATE_VERIFY_FAILED」が出た時の解決方法
Pythonのurllib.requestでSSLエラー「CERTIFICATE_VERIFY_FAILED」が出た時の解決方法

Pythonで、urllib.requestを使おうとしたときにSSLエラーが出てしまいました。httpsのURLにリクエストするとどうも証明書が見つからずエラーを起こしてしまうようです。そこで、いろいろ調べて試した結果なんとか解決できましたのでお伝えします。

対処方法1

これだとダメでした。

$ pip3 install --upgrade certifi
...
WARNING: You are using pip version 21.0.1; however, version 21.1.3 is available.
You should consider upgrading via the '/Library/Frameworks/Python.framework/Versions/3.9/bin/python3.9 -m pip install --upgrade pip' command.

よく読むと、次のコマンドでpipupgradeしなさいと書かれてます。やってみます。

shell
$ /Library/Frameworks/Python.framework/Versions/3.9/bin/python3.9 -m pip install --upgrade pip
Requirement already satisfied: pip in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (21.0.1)
Collecting pip
  Downloading pip-21.1.3-py3-none-any.whl (1.5 MB)
     |████████████████████████████████| 1.5 MB 934 kB/s 
Installing collected packages: pip
  Attempting uninstall: pip
    Found existing installation: pip 21.0.1
    Uninstalling pip-21.0.1:
      Successfully uninstalled pip-21.0.1
Successfully installed pip-21.1.3

その後、urllib.requestを使ったhttpsリクエストがとるようになりました。

対処方法2

新しいMacbookを購入したのでPython環境を構築したところ、またもやSSLのエラーでつまづきました。対処方法1では解決できなかったので、調べたところ次のコマンドを実行したら解決しました。

shell
$ open /Applications/Python\ 3.11/Install\ Certificates.command 

Pythonでhttps接続する際に「CERTIFICATE_VERIFY_FAILED」のエラーが出た場合は、以上を試してみてください。

参考: macos - Mac OSX python ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:749) - Stack Overflow

関連記事

 
最後までご覧いただきありがとうございます!

▼ 記事に関するご質問やお仕事のご相談は以下よりお願いいたします。
お問い合わせフォーム

Python学習にオススメの本をご紹介!
Pandasでデータサイエンスはじめよう!
スクレイピングにオススメの書籍

▼ Beautiful Soup4を使ったWebクローリングをはじめ、表データをpandasやOpenPyXL、matplotでデータ解析、グラフ表示などのスクレイピングのやり方が分かりやすく説明されてます。図解が多いのでPython初心者の方でも読み進められる内容となってます。