【问题标题】:SSL_CERT_DIR not avaluated by urrlib2urllib2 未评估 SSL_CERT_DIR
【发布时间】:2018-02-27 09:24:51
【问题描述】:

我有一个小脚本来测试使用 `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 库?

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

【问题讨论】:

    标签: python ssl python-requests ssl-certificate urllib2


    【解决方案1】:

    SSL_CERT_DIR 和 SSL_CERT_FILE 不是 urllib2 或请求的功能,而是底层 OpenSSL 库的功能。但是,仅将新证书放入给定目录是不够的,您需要使用正确的文件名和证书的哈希值。请参阅rehash 了解更多信息。

    【讨论】:

    • 似乎仍然需要相应的python库支持(请参阅请求讨论)。
    • 但是你是对的,在证书目录中运行c_rehash . 允许我使用SSL_CERT_DIR。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-24
    • 1970-01-01
    • 2017-12-02
    • 2016-11-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多