OpenSSL是否支持扩展“主题目录属性”?

时间:2016-12-09 03:36:19

标签: pyopenssl

我正在使用PyOpenSSL,这是OpenSSL的瘦包装,可以通过Python程序将扩展“主题目录属性”添加到证书中。已经尝试了扩展名'subjectDirAttrs'和'subjectDirectoryAttributes',但是发生了错误:

 "OpenSSL.crypto.Error: [('X509 V3 routines', 'DO_EXT_NCONF', 'unknown extension name'), ('X509 V3 routines', 'X509V3_EXT_nconf', 'error in extension')]".

由于PyOpenSSL是OpenSSL的包装器,任何人都可以清楚地知道OpenSSL是否支持扩展“主题目录属性”以及OpenSSL支持它时编程中的正确名称是什么?

另一个问题是当我通过PyOpenSSL将扩展“证书策略”添加到证书时,报告错误如下。

"OpenSSL.crypto.Error: [('X509 V3 routines', 'DO_EXT_NCONF', 'no config database'), ('X509 V3 routines', 'X509V3_EXT_nconf', 'error in extension')]"

什么是配置数据库?它是指/usr/local/ssl/openssl.cnf吗?如何使用PyOpenSSL将扩展“证书策略”添加到证书中?    非常感谢!

1 个答案:

答案 0 :(得分:0)

  

OpenSSL是否支持扩展“主题目录属性”?

有点依赖。 OpenSSL可以使用具有它们的证书,这意味着如果存在“不支持”错误,事情不会失败。问题是,没有什么可用于解析用户程序。你必须推出自己的解析逻辑。

另请参阅OpenSSL用户邮件列表中的How to parse Subject Directory Attributes Extension?。该线程提供了一些解析它们的建议。这是来自主题:

  • “有人必须编写ASN1解析代码。在OpenSSL中有各种各样的例子;请参阅各种d2i_XXX和i2d_XXX函数。有宏/定义可以使工作更容易。但是,它没有真正记录。“

  • “看起来类型不是X509_NAME_ENTRY而是X509_ATTRIBUTE和扩展名 是属性的序列。我们没有特定的直接等价物 类型IIRC但不难添加一个只是按照所做的 GENERAL_NAMES是GENERAL_NAME的SEQUENCE ...您可以添加自定义扩展程序,也可以只解析结构中的结构 扩展内容。“