You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中提取并存储X509证书的Issuer CN值

提取证书Issuer中的CommonName值

嘿,刚接触Python和cryptography库的话,确实会对这种结构化的证书属性有点摸不着头脑,我来一步步教你怎么从cert_issuer里取出commonName的值~

首先,你要知道cert_issuer是一个x509.Name对象,它里面包含了一组证书颁发者的属性条目(比如国家、组织、通用名称这些)。每个条目都是x509.NameAttribute类型,包含属性类型(OID)和对应的值。

方法一:遍历属性条目查找

这种方式比较直观,适合刚上手理解结构:

from cryptography.x509.oid import NameOID

# 初始化变量存储commonName
common_name = None

# 遍历issuer的所有属性条目
for attr in cert_issuer:
    # 判断当前属性是否是CommonName
    if attr.oid == NameOID.COMMON_NAME:
        common_name = attr.value
        break  # 找到后就退出循环

# 验证结果
if common_name:
    print(f"颁发者的通用名称是:{common_name}")
else:
    print("颁发者信息中没有找到通用名称(CommonName)")

方法二:直接通过OID获取属性(更简洁)

cryptography库提供了直接根据属性OID查找的方法,效率更高:

from cryptography.x509.oid import NameOID

# 根据CommonName的OID获取对应的属性列表
common_name_attrs = cert_issuer.get_attributes_for_oid(NameOID.COMMON_NAME)

# 因为一个颁发者一般只有一个CommonName,所以取列表第一个元素的值
if common_name_attrs:
    common_name = common_name_attrs[0].value
else:
    common_name = None

小提示

  • 必须导入NameOID,它定义了所有证书属性对应的标准OID,COMMON_NAME就是对应commonName的标识。
  • attr.value返回的是字符串类型,可以直接赋值给变量或者用于后续操作。

内容的提问来源于stack exchange,提问作者Achal Sharma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 20:47:33