您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何使用python解码SSL证书?

如何使用python解码SSL证书?

Python的标准库,即使是最新版本,也不包含任何可解码X.509证书的内容。但是,附加cryptography软件包确实支持功能。引用文档中示例

>>> from cryptography import x509
>>> from cryptography.hazmat.backends import default_backend
>>> cert = x509.load_pem_x509_certificate(pem_data, default_backend())
>>> cert.serial_number
2

一个可选的附加软件包是pyopenssl。这是围绕OpenSSL C API的精简包装,这意味着有 可能 做您想做的事情,但是希望花几天的时间来整理文档。

如果您无法安装Python附加软件包,但确实有openssl命令行实用程序,

import subprocess
cert_txt = subprocess.check_output(["openssl", "x509", "-text", "-noout", 
                                    "-in", certificate])

应该会产生与您从中的Web实用工具获得的大致相同的东西cert_txt

顺便说一句,直接进行base64解码会产生二进制gobbledygook的原因是这里有两层编码。X.509证书ASN.1数据结构,序列化为X.690 DER格式,然后,由于DER是二进制格式,因此使用base64铠装以便于文件传输。(在这方面的许多标准都是在90年代编写的,当时您只能可靠地发送7位ASCII码,否则无法可靠地发送任何东西。)

python 2022/1/1 18:35:50 有233人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶