我想使用 Zeep 在 Python 中对网络服务进行编程以交换数据。我只能使用我的证书访问服务。我有一个 PFX 证书,但我将它转换为两个 .pem
文件。
我的代码:
from zeep import Client
from zeep.wsse.signature import Signature
import requests
from requests import Session
key_filename ='/.files/cert.key.pem'
cert_filename = './files/cert.crt.pem'
session = Session()
r = requests.get('https:...../PingWs?wsdl',
cert=(cert_filename, key_filename))
print (r)
但是我明白了
> raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host='evidim-test.gov.si', port=443):
Max retries exceeded with url: /ws/test/PingWs?wsdl
(Caused by SSLError(SSLError("bad handshake: Error([('SSL routines',
'tls_process_server_certificate', 'certificate verify failed')],)",),))
最佳答案
这是一个您必须通过将用于签署您尝试从系统设置连接到的远程服务器证书的 CA 证书列入白名单来解决的问题。但仅出于测试目的,您可以使用以下方式关闭验证:
r = requests.get('https:...../PingWs?wsdl',verify=False)
不要在生产中使用它。
希望对您有所帮助!
关于python - SSLError ("bad handshake") 尝试访问资源自定义证书和请求时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47208466/