SSL_CERT_DIR 未由 urllib2 评估

SSL_CERT_DIR not avaluated by urrlib2

我有一个小脚本来测试使用 `urllib2:

与自签名 https 站点的连接
#!/usr/bin/env python

try:
    import urllib2  # python2
except:
    import urllib.request as urllib2  # python3
import sys

req = urllib2.Request(sys.argv[1], headers={'User-Agent':'Mozilla/5.0'})
urllib2.urlopen(req)

我正在测试我的自签名 https 站点,如下所示:

SSL_CERT_FILE="/certs-dir/self-signed-site.crt" python urllib2_test.py https://localhost:5554

这行得通。

但这不是:

SSL_CERT_DIR="/certs-dir" python urllib2_test.py https://localhost:5554

这也行不通:

SSL_CERT_DIR="/certs-dir/self-signed-site.crt" python urllib2_test.py https://localhost:5554

discussionrequests 添加对此的支持,但我在 urllib2 中找不到对 SSL_CERT_DIR 的引用。一定有什么东西,也许是通过底层的 ssl 库?

SSL_CERT_FILE / SSL_CERT_DIR 的处理在哪里为 urrlib2 定义?

SSL_CERT_DIR 和 SSL_CERT_FILE 不是 urllib2 或请求的特性,而是底层 OpenSSL 库的特性。但是,仅仅将新证书放入给定目录是不够的,您需要使用带有证书哈希的正确文件名。有关详细信息,请参阅 rehash