UbuntuでPythonを使用していると、SSLエラーに遭遇することがあります。この記事では、そのような状況で試すことができるいくつかの解決策を提供します。

Pythonでの対処法

まず、Pythonでの対処法について説明します。Pythonでは、SSL_CERT_FILEという環境変数にCA証明書ファイルを指定すると、エラーが解決することがあります。PythonにはCA証明書を持っているcertifiモジュールがあります。そのモジュールが持っている証明書ファイルのパスを環境変数にセットします。ファイルパスは、python3 -m certifiで知ることができます。

$ python3 -m certifi
/usr/local/lib/python3.8/dist-packages/certifi/cacert.pem
$ echo SSL_CERT_FILE=/usr/local/lib/python3.8/dist-packages/certifi/cacert.pem >> $HOME/.bashrc
$ source $HOME/.bashrc  # 環境変数読み込み

wgetでの解決方法

次に、wgetでの解決方法について説明します。wgetがどこのCA証明書ファイルを読みに行っているかを知ると早いです。straceコマンドでwgetがどんなファイルを読んでいるのか調べます。そして、/usr/local/ssl/certsのファイルを読みに行っていることがわかります。そのディレクトリの中身を見ると空でした。CA証明書は自分の環境では/etc/ssl/certsにあるため、シンボリックリンクを貼って対処します。

$ sudo rm -rf /usr/local/ssl/certs
$ sudo ln -s /etc/ssl/certs /usr/local/ssl/certs

再度wgetを試すと、エラーは解消できました。同時にPythonでのエラーもなくなり、環境変数の設定が不要になりました。

以上がUbuntuでPythonのSSLエラーを解決する方法です。この記事が皆さんの役に立てば幸いです。.

投稿者 admin

コメントを残す

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