在 Python 中模拟 openssl s_client验证工具

Emulate openssl s_client verify facility in Python

提问人:pepoluan 提问时间:11/16/2023 更新时间:11/16/2023 访问量:10

问:

我想做类似的事情:

openssl s_client -verify_return_error -quiet -strict -verifyCAfile CA_file.crt server.name:4443

安装的证书是一个部分链,包含(按顺序):服务器的证书和 Intermediate1 证书。server.name

例如,运行上述命令将返回如下内容:

### Successful chain traversal
depth=2 C = ..., CN = ROOT, emailAddress = ...
verify return:1
depth=1 C = ..., CN = Intermediate1, emailAddress = ...
verify return:1
depth=0 C = ..., CN = server.name
verify return:1

### UNsuccessful chain traversal (e.g., wrong CA_file)
depth=1 C = ..., CN = Intermediate1, emailAddress = ...
verify error:num=20:unable to get local issuer certificate

我如何使用 Python 做到这一点?

我尝试阅读pyOpenSSL的文档,但它真的是......稀疏。没有代码示例,没有关于如何做事的指南。

笔记:

  1. 我只需要一个布尔值返回; 如果证书链有效,如果证书链无效(任何原因,无论是错误的本地CA_file还是服务器端安装的错误链)truefalse
  2. 没有必要使用 pyOpenSSL;任何其他产生我想要的布尔结果的方法都可以。
蟒蛇 openssl pyopenssl

评论


答: 暂无答案