macOS上でPythonでSSLを用いたアクセスを行おうとすると以下のようなエラーが出力されることがある。
URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)>
通信経路や通信相手に問題がない場合、Pythonが管理している証明書が古いためTLSの通信に失敗している可能性がある。以下のコマンドを実行して最新の証明書を取得すると解決できる。
$ /Applications/Python\ 3.9/Install\ Certificates.command /Applications/Python\ 3.9/Install\ Certificates.command -- pip install --upgrade certifi Collecting certifi Using cached certifi-2020.12.5-py2.py3-none-any.whl (147 kB) Installing collected packages: certifi Successfully installed certifi-2020.12.5 WARNING: You are using pip version 20.2.3; however, version 20.3.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. -- removing any existing file or link -- creating symlink to certifi certificate bundle -- setting permissions -- update complete
実はインストーラにも同様の記述が表示されている。しかしインストーラが表示する文面に気付かないことも多いため、この状況にしばしば陥っているのを見かける。