gpt4 book ai didi

Python 请求 lib 与 SSL 版本 3

转载 作者:行者123 更新时间:2023-11-28 18:33:18 25 4
gpt4 key购买 nike

我尝试使用 python 请求库访问 SOAP 服务器,我发现了这个问题

[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:600)

一切正常,使用在用 PHP 编写的类似应用程序中使用的相同 url、证书和 header ,工作正常,除了在 python 中我没有设置 SSL 版本,我想知道什么可能是错的我的代码

header = {
'Content-Type': 'application/soap+xml;charset=utf-8',
'SOAPAction': '"nfeConsultaNF2"',
'Content-length': len(requisicao)
}
chave = "43160189823918000144550020000200401010200408"
requisicao = '<?xml version="1.0" encoding="utf-8"?><soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"><soap12:Header><nfeCabecMsg xmlns="http://www.portalfiscal.inf.br/nfe/wsdl/NfeConsulta2"><cUF>43</cUF><versaoDados>3.10</versaoDados></nfeCabecMsg></soap12:Header><soap12:Body><nfeDadosMsg xmlns="http://www.portalfiscal.inf.br/nfe/wsdl/NfeConsulta2"><consSitNFe xmlns="http://www.portalfiscal.inf.br/nfe" versao="3.10"><tpAmb>1</tpAmb><xServ>CONSULTAR</xServ><chNFe>'+chave+'</chNFe></consSitNFe></nfeDadosMsg></soap12:Body></soap12:Envelope>';

s = requests.session()
s.mount(url.web_url,Ssl3HttpAdapter())

response = s.post(
"https://nfe.sefazrs.rs.gov.br/ws/NfeConsulta/NfeConsulta2.asmx",
data=requisicao,
headers=header,
cert=("C:\\xampp\htdocs\consultar\cert.pem","C:\\xampp\htdocs\consultar\priv.pem")
)

Ssl3Adapter 由此类定义

class Ssl3HttpAdapter(HTTPAdapter):
""""Transport adapter" that allows us to use SSLv3."""

def init_poolmanager(self, connections, maxsize, block=False):
self.poolmanager = PoolManager(num_pools=connections,
maxsize=maxsize,
block=block,
ssl_version=ssl.PROTOCOL_SSLv3)

有什么建议吗?附言。我无法提供我的证书

最佳答案

[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:600)

证书不能被python验证,也不能被其他人验证,在this report from SSLLabs中可以看到.

PHP, which works fine, ..

证书或其颁发者受到 PHP 明确信任,或者您使用的是旧版本的 PHP,默认情况下根本不验证证书,因此验证不会失败。

ssl_version=ssl.PROTOCOL_SSLv3)

正如您从 SSLLabs 的报告中所见,该服务器实际上支持 TLS 1.0(但不支持 TLS 1.1 或 TLS 1.2)。因此,无需将版本限制为 SSL 3.0。

关于Python 请求 lib 与 SSL 版本 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34930059/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com