openssl - 交叉簽章證書

openssl - 交叉簽章證書

我想對第三方根 ca ( third-party-ca) 與我自己的根 ca ( r1) 進行交叉簽名。 (背景:限制使用

為此,我使用

openssl x509-in third-party-ca.crt -CA /etc/pki/r1/ca.crt -CAkey /etc/pki/r1/private/ca.key -out third-party-ca-cross-signed.crt -set_serial 1000

這有效,但保留了,需要將Authority Key Identifier其更改為。 (有關野外範例,請參閱 LetsEncryptthird-party-caSubject Key Identifierr1ISRG X1 交叉簽名經過DST 根 CA X3

我可以Authority Key Identifier透過創建akiext並使用來添加另一個-extfile akiext。然而,這會產生兩個Authority Key Identifier

如何替換現有的Authority Key Identifier

答案1

openssl x509命令列中,您不能選擇性地刪除擴充功能;你可以用-clrextdrop全部輸入擴充名並在-extfile您想要的現有副檔名中進行配置(至少 BC 和 KU)新的。請注意公共從屬憑證或跨 CA 憑證(例如您連結的憑證)可能包含 AIA 和/或 CRLDP 以及 AKI,全部其中僅適用於您要替換的發行人/母公司,因此應替換(或刪除)。

或者你可以編寫程式碼;這樣做使用應用程式介面很簡單。但這可能屬於SO或或許security.SX 而不是這裡。 (並且您應該完成部分工作。)

在您的特定範例中,ISRG Root X1 既可以由 Identrust DST X3 交叉簽名,也可以由 Identrust DST X3 交叉簽名。作為根-- 如果您從根憑證開始,它沒有 AKI或者需要刪除的 AIA/CRLDP。

更新:據透露後續相關問題OpenSSL 3.0.0以上版本不允許非root輸入狀況;它需要舊證書進行自簽名(根)。來源中的評論表明這始終是有意的,儘管之前沒有有效執行。

相關內容