Freebsd
Python 2.7.9 沒有在 FreeBSD 的正確位置尋找 SSL 證書,我該怎麼辦?
我有一個 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.pem
python 2.7.9 不需要。所以我最終將第二個連結到第一個。我在https://bugs.freebsd.org/bugzilla/上找不到對此錯誤的任何引用。