解析X509专有名称

时间:2014-05-17 20:48:58

标签: python openssl x509 pyopenssl

我的Python Web应用程序从Web服务器接收客户端的专有名称(取自客户端证书)的格式(可能是X509标准格式?):

/C=BR/ST=Minas Gerais/O=Internet Widgits Pty Ltd/CN=www.test.com

这是某种标准吗?我可以(安全地)使用pyOpenSSL解析此字符串并从中构建X509Name吗?或者其他一些图书馆?我只对CN ...

感兴趣

2 个答案:

答案 0 :(得分:2)

似乎python-ldap可以使用dn模块解析这些类型的字符串(DN = Distinguished Name):

>>> ldap.dn.str2dn('cn=Michael Str\xc3\xb6der,dc=stroeder,dc=com',flags=ldap.DN_FORMAT_LDAPV3)
[[('cn', 'Michael Str\xc3\xb6der', 4)], [('dc', 'stroeder', 1)], [('dc', 'com', 1)]]

来源:https://www.python-ldap.org/doc/html/ldap-dn.html

答案 1 :(得分:1)

确实这是一个标准。符号在RFC 4514中定义。您可以根据RFC解析它,提取CN部分然后使用其值。不幸的是,我无法告诉你有关python库的信息。