
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 Identifier
r1
。(実際の例については、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 以降では、非ルート入力のケースは許可されません。古い証明書を自己署名 (ルート) する必要があります。ソース内のコメントによると、これは常に意図されていたことですが、以前は効果的に実施されていませんでした。