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しなさいと書かれています。やってみます。

$ /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では解決できなかったので、調べたところ次のコマンドを実行したら解決しました。

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

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

参考:

記事に関するご質問などがあれば、お問い合わせ までご連絡ください。
Python学習にオススメの本をご紹介!
Pandasでデータサイエンスはじめよう!
関連記事