【发布时间】:2016-07-26 18:00:21
【问题描述】:
背景:
我正在尝试与外部供应商创建 SSL 上下文连接以进行握手,然后通过该连接使用 xml 进行通信。
clientCert = path["cert_path"]
clientKey = path["key_path"]
PROTOCOL = ssl.PROTOCOL_TLSv1
context = ssl.SSLContext(PROTOCOL)
context.load_default_certs()
context.load_cert_chain(clientCert, clientKey)
conn = httplib.HTTPSConnection(uri, 443, context=context)
conn.request("POST", '/', headers=headers, body=signedRequest) # code breaks here
response = conn.getresponse()
但是这段代码会说:
SSLError(1, u'[SSL: TLSV1_ALERT_UNKNOWN_CA] tlsv1 alert unknown ca (_ssl.c:590)
现在,我知道 CA 证书已正确放置在服务器上,但路径变得混乱。
问题
我如何查看 ssl 和 openssl 从中选择 CA 证书的 CA 路径。
Openssl 似乎建立了正确的连接,所以我需要在这里明确提供 ssl 的路径。
requests.utils路径可以找到如下,寻找类似的东西来理解context.load_default_certs()
In [1]: from requests.utils import DEFAULT_CA_BUNDLE_PATH
In [2]: print(DEFAULT_CA_BUNDLE_PATH)
/usr/local/python/path/site-packages/certifi/cacert.pem
【问题讨论】:
标签: python ssl https openssl tls1.2