openssl - クロスサイン証明書

openssl - クロスサイン証明書

third-party-caサードパーティのルート 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の が残るため、のthird-party-caに変更する必要があります。Subject Key Identifierr1。(実際の例については、letsencrypt を参照してください。ISRG X1 クロスサインによるDST ルート CA X3

Authority Key Identifierを作成しakiext、 を使用して をもう 1 つ追加できます-extfile akiext。ただし、これにより が 2 つになりますAuthority Key Identifier

既存のものをどうやって置き換えることができますかAuthority Key Identifier?

答え1

コマンドラインではopenssl x509、拡張機能を個別に削除することはできません。-clrext、拡張機能を個別に削除すること全て拡張機能を入力して設定する-extfile必要な既存の拡張機能を設定します(少なくとも BC と KU)プラス新しい証明書。公開されている下位証明書や相互CA証明書(リンクした証明書など)には、AKIだけでなくAIAやCRLDPも含まれている可能性があるので注意してください。全てこれらは、置き換えようとしている発行者/親に対してのみ正しいため、置き換え (または削除) する必要があります。

あるいは、コードを書くこともできます。API簡単です。しかし、それはおそらくSOか多分ここではなく、security.SX を参照してください。(そして、あなたにも作業の一部を行っていただくことになります。)

具体的な例では、ISRG Root X1はIdentrust DST X3によってクロス署名されており、根として-- ルート証明書から開始する場合、AKIはありませんまたは削除する必要がある AIA/CRLDP。

更新:関連する質問OpenSSL 3.0.0 以降では、非ルート入力のケースは許可されません。古い証明書を自己署名 (ルート) する必要があります。ソース内のコメントによると、これは常に意図されていたことですが、以前は効果的に実施されていませんでした。

関連情報