繁体   English   中英

使用Python请求进行SSL客户端身份验证

[英]SSL Client Authentication with Python requests

我正在使用Python的请求库执行带有证书的客户端身份验证 该方案如下: CA1已为中间CA( CA2 )颁发了证书,并且CA2已为我的客户的CLIENT颁发了证书。 我连接的服务器信任CA1的证书(但没有CA2的证书)。 当我使用时:

requests.get('https:..', cert=('/path/CLIENT.cert', '/path/CLIENT.key'))

我收到一个错误“证书验证失败”。 我以为是因为服务器无法检索CA2的证书。

但是,我找不到将CA2的证书发送到服务器的方法。 如果将其包含在CLIENT ,则会收到有关私钥和证书不匹配的错误。 我还尝试将证书链包含在verify参数中,但结果似乎没有任何区别(据我所知, verify参数中的证书用于服务器端身份验证)。

尽管我认为这一定是很常见的情况,但我无法找到解决方案...

PD:如果我使用openssl和完整的证书链来验证CLIENT的证书,则验证成功(因此证书本身没有问题)。

请求建议将certifi用作CA捆绑包。 您是否尝试过安装certifi ,添加CA1并将certifi捆绑包路径传递给requests

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM