2016-12-09 66 views
1

我正在使用PyOpenSSL,它是OpenSSL的薄包裝,通過Python程序將擴展'主題目錄屬性'添加到證書。擴展名「subjectDirAttrs」和「subjectDirectoryAttributes」曾經嘗試過,但出現錯誤:OpenSSL是否支持擴展'主題目錄屬性'?

"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將擴展的「證書策略」添加到證書中? 非常感謝!

回答

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完成的操作即可,您可以添加自定義擴展或僅解析 擴展內容的結構。「