[英]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.