python ssl连接 证书验证失败_Python无法验证SSL/TLS连接的任何crl

在Python3.4环境下,尝试使用ssl模块进行SSL连接并启用CRL验证时,遇到证书验证失败的问题。即使设置了VERIFY_CRL_CHECK_LEAF,脚本仍然无法验证任何连接。尝试加载默认证书库、设置默认验证路径或指定CA文件均未解决问题。代码中证书链的可信性检查能正常工作,但CRL验证始终失败。目前尚不清楚问题所在,可能涉及证书数据库加载或CRL配置问题。
摘要由CSDN通过智能技术生成

在Python3.4中,verify_flags,通过将其设置为VERIFY_CRL_CHECK_LEAF或{},可用来检查证书是否已根据CRL被吊销。在

我写了一个简单的测试程序。但在我的系统中,这个脚本无法验证任何连接,即使它完全有效。在import ssl

import socket

def tlscheck(domain, port):

addr = domain

ctx = ssl.create_default_context()

ctx.options &= ssl.CERT_REQUIRED

ctx.verify_flags = ssl.VERIFY_CRL_CHECK_LEAF

ctx.check_hostname = True

#ctx.load_default_certs()

#ctx.set_default_verify_paths()

#ctx.load_verify_locations(cafile="/etc/ssl/certs/ca-certificates.crt")

sock = ctx.wrap_socket(socket.socket(), server_hostname=addr)

sock.connect((addr, port))

import pprint

print("TLS Ceritificate:")

pprint.pprint(sock.getpeercert())

print("TLS Version:", sock.version())

print("TLS Cipher:", sock.cipher()[0])

exit()

tlscheck("stackoverflow.com", 443)

我的代码总是以ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:645)退出。在

首先,我怀疑证书数据库没有正确加载。但是在我尝试了load_default_certs(),set_default_verify_paths(),load_verify_locations(cafile="/etc/ssl/certs/ca-certificates.crt")之后,它们都没有起作用。在

另外,ctx.options &= ssl.CERT_REQUIRED工作正常,它可以判断证书链是否可信。但不是针对CRL。。。这也表明我的CA是正确的。在

我知道“/etc/ssl/certs/ca-证书.crt“包含有效的CA。有什么问题吗?在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值