Python 2.7.9がFreeBSDの正しい場所でSSL証明書を見つけられない場合はどうすればよいですか?

Python 2.7.9がFreeBSDの正しい場所でSSL証明書を見つけられない場合はどうすればよいですか?

私はFreeBSD 10.0システムを持っており、数日前にpython27ポートをPython 2.7.8からPython 2.7.9にアップグレードしました。 Python 2.7.9はデフォルトでSSL検証が有効になっています。当然、自己署名証明書を使用してサーバーに接続する既存のPythonスクリプトが破損しています。驚くべきことに、有効なSSL証明書を使用してサーバーに接続するスクリプトが中断されました。

私は/usr/local/etc/ssl/cert.pem(へのシンボリックリンク/usr/local/share/certs/ca-root-nss.crt)がありますが、ありません/etc/ssl/cert.pem。私のPythonインストールには後者が必要です。

>>> ssl.get_default_verify_paths()
DefaultVerifyPaths(cafile=None,
                   capath=None,
                   openssl_cafile_env='SSL_CERT_FILE',
                   openssl_cafile='/etc/ssl/cert.pem',
                   openssl_capath_env='SSL_CERT_DIR',
                   openssl_capath='/etc/ssl/certs')

適切なシンボリックリンクを作成してこの問題を解決しましたが、より良い方法はありますか?これが必要ですか、それともポート自体がこの問題を解決する必要がありますか?

SSL_CERT_FILE私の環境に設定することもできますが、必ずしもそうする必要はありません。)

答え1

対応するFreeBSDエラーは次のとおりです。ここ。修正はシンボリックリンクを追加します。

ln -sf /usr/local/etc/ssl/cert.pem /etc/ssl/cert.pem
ln -sf /usr/local/etc/ssl/cert.pem /usr/local/openssl/cert.pem

答え2

私はca_root_nssそれを提供しましたが、/usr/local/etc/ssl/cert.pemPython /etc/ssl/cert.pem2.7.9では必要ありません。それで結局2番目を最初に接続するようになりました。このエラーへの参照が見つかりません。https://bugs.freebsd.org/bugzilla/

関連情報