Freebsd

Python 2.7.9 沒有在 FreeBSD 的正確位置尋找 SSL 證書,我該怎麼辦?

  • July 20, 2018

我有一個 FreeBSD 10.0 系統,幾天前,我將我的python27埠從 Python 2.7.8 升級到 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在我的環境中設置,但我寧願不必一直這樣做。)

相應的 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

我有ca_root_nss哪些提供/usr/local/etc/ssl/cert.pem/etc/ssl/cert.pempython 2.7.9 不需要。所以我最終將第二個連結到第一個。我在https://bugs.freebsd.org/bugzilla/上找不到對此錯誤的任何引用。

引用自:https://unix.stackexchange.com/questions/176294