首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python打印所有公钥证书信息(X.509格式)

Python打印所有公钥证书信息(X.509格式)
EN

Stack Overflow用户
提问于 2020-11-06 18:09:30
回答 1查看 193关注 0票数 0

我正在尝试编写一个Python3程序,该程序将显示包含在公钥证书中的所有信息,类似于以下linux命令:

代码语言:javascript
运行
复制
openssl x509 -in website.com.pem -text

,它将返回类似于

代码语言:javascript
运行
复制
Certificate:
Data:
    Version: 3 (0x2)
    Serial Number:
        04:7a:f7:95:47:c0:7d:0f:ef:80:a5:b2:1f:51:e3:63
Signature Algorithm: sha256WithRSAEncryption
    Issuer: C = GB, ST = Greater Manchester, L = Salford, O = COMODO CA Limited, CN = COMODO RSA Domain Validation Secure Server CA
    Validity
        Not Before: Mar 12 00:00:00 2018 GMT
        Not After : Mar 11 23:59:59 2020 GMT
    Subject: OU = Domain Control Validated, OU = PositiveSSL, CN = acs.cdroutertest.com
    Subject Public Key Info:
        Public Key Algorithm: rsaEncryption
            Public-Key: (2048 bit)

如以下网站所示:https://support.qacafe.com/knowledge-base/how-do-i-display-the-contents-of-a-ssl-certificate/

我已经尝试了python3中的加密或pyopenssl模块,并且能够导入证书并显示例如公钥。然而,我没有找到一种方法来浏览所有可用的信息并只显示它们,而不必为证书中可能提供或可能不可用的每个字段编写print()语句。

有谁知道如何把我推向正确的方向吗?

非常感谢,谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-16 11:39:49

实际上疏忽了我注意力的一个解决方案是使用模块asn1tools

代码语言:javascript
运行
复制
import asn1tools
foo = asn1tools.compile_files("x509.asn")
output = foo.decode("Certificate", cert)

只有X509所需的所有ASN.1定义必须在文件x509.sem中可用(可通过相应的RFC获得),而"cert“保存字节串。

结果将是一个包含所有信息的python字典,而不必遍历任何内容或丢失某些不寻常的参数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64712576

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档