相关疑难解决方法(0)

什么是我的openssl和ssl默认CA Certs路径?

背景 :

我正在尝试与外部供应商创建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()
Run Code Online (Sandbox Code Playgroud)

但这段代码打破说:

SSLError(1, u'[SSL: TLSV1_ALERT_UNKNOWN_CA] tlsv1 alert unknown ca (_ssl.c:590)
Run Code Online (Sandbox Code Playgroud)

现在,我知道CA证书正确地放在服务器上,某个地方的路径搞砸了.

我怎么能看到什么是CA的路径作为此sslopenssl挑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
Run Code Online (Sandbox Code Playgroud)

python ssl https openssl tls1.2

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

https ×1

openssl ×1

python ×1

ssl ×1

tls1.2 ×1