Pythonのurllib.requestでCERTIFICATE_VERIFY_FAILEDエラーが出るときの対応

この記事は公開から2年以上経過しています。

PyTorchで機械学習のデータセットCIFAR-10を利用したところ、

Exception has occurred: URLError (note: full exception trace is shown but execution is paused at: _run_module_as_main)
<urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:997)>

のようなエラーが発生して利用できなかったので、そのときの対応についての備忘録。


原因

CIFAR-10内のurllib.request.urlopen()の呼び出しでSSL証明書とホスト名の検証でエラーが発生している。
(実際に証明証のエラーがあるかは未確認だが、私の自宅ネットワーク環境はSquidを用いたSSLフィルタリングを行っていることから、SSL証明証の検証で問題が発生しやすい。)

file


対応

SSL証明書とホスト名の検証を行わないようにsslを設定する。

この対応を行うと、SSL証明書の検証を行わないリスクを許容することになります(At your own risk)。

import ssl
ssl._create_default_https_context = ssl._create_unverified_context()


# 参考ウェブサイトなど


以上です。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする