我正在使用以下代码:
from cryptography import x509
from cryptography.hazmat.backends import default_backend
cert_info = x509.load_pem_x509_certificate(cert_pem, default_backend())
cert_issuer = cert_info.issuer
在 PyCharm 中调试时,我看到 cert_issuer 变量如下:我想将 commonName 值存储在一个变量中。 (上面突出显示的值)
我对 Python 还是相当陌生,并且无法找到这些类型的变量的任何内容,有人可以指导我将值存储在变量中的语法应该是什么。
最佳答案
发行人的通用名称 (CN) 可以通过以下方式确定:
...
from cryptography.x509.oid import NameOID
cn = cert_info.issuer.get_attributes_for_oid(NameOID.COMMON_NAME)[0].value
...
cryptography.x509.Certificate#issuer
返回 cryptography.x509.Name
包含属性列表的对象。可以通过 get_attributes_for_oid(oid)
访问此列表的特定属性。 ,其中必须使用来自 cryptography.x509.oid.NameOID
的 OID 指定属性的名称。 ,例如 COMMON_NAME
. get_attributes_for_oid(oid)
返回 cryptography.x509.NameAttributes
的列表对象。由于只有一个 Issuer,所以第一个 NameAttribute
必须使用对象,其值可以通过 value
查询.
关于Python:将 X509 证书的颁发者 CN 值存储为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63489188/