我正在爲一些基於python的程序開發X509存儲系統。所有證書都保存在PostgresSQL數據庫中以便於訪問。所有工作正常,當爲每個主題(用戶或CA權威)時,只有一個證書。然後找到驗證路徑是容易的,因爲發行人現場唯一標識一個證書:當一些證書續期因過期或任何其他原因X509證書 - 維護認證路徑
UserCert1(CA_cert_class1) -> CA_cert_class1(CA_cert_root) -> CA_cert_root(CA_cert_root)
的問題開始。 然後兩個或多個證書具有相同的主題。在這種情況下,有多種可能的認證途徑。
UserCert1(CA_cert_class1) -> CA_cert_class1(CA_cert_root)(old)->....
-> CA_cert_class1(CA_cert_root)(new)->....
嘗試每種組合都不是解決方案。此外,刪除過期證書不是解決方案,因爲我需要它們來驗證舊的數字簽名。
問題:如何唯一標識X509證書內的頒發者證書。我想,這與X509v3擴展有關。我不知道如何使用它們。
謝謝!這是我正在尋找的。現在我必須弄清楚,如何使用OpenSSL API在cpp中添加擴展。 – Marek 2013-05-14 00:21:20
我在cpp中找到了很好的例子: http://stackoverflow.com/questions/2883164/openssl-certificate-lacks-key-identifiers – Marek 2013-05-14 00:29:15