openssl - Cross-Sign-Zertifikat

openssl - Cross-Sign-Zertifikat

third-party-caIch möchte eine Root-CA eines Drittanbieters ( ) mit meiner eigenen Root-CA ( ) kreuzsignieren r1. (Hintergrund:Nutzungseinschränkung)

Dazu verwende ich

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

Dies funktioniert, behält aber das Authority Key Identifiervon bei , das in das von third-party-cageändert werden müsste . (Ein praktisches Beispiel finden Sie unter letsencryptSubject Key Identifierr1ISRG X1 kreuzsigniertvonDST-Stammzertifizierungsstelle X3)

Ich kann ein weiteres hinzufügen, Authority Key Identifierindem ich ein erstelle akiextund verwende -extfile akiext. Dies führt jedoch zu zwei Authority Key Identifier's.

Wie kann ich das Vorhandene ersetzen Authority Key Identifier?

Antwort1

In openssl x509der Kommandozeile können Sie Erweiterungen nicht selektiv löschen. Sie können sie -clrextmit löschen.alleGeben Sie Erweiterungen ein und konfigurieren Sie darin -extfiledie bereits vorhandenen Erweiterungen, die Sie möchten (mindestens BC und KU).Plusdie neuen. Beachten Sie, dass öffentliche untergeordnete oder übergreifende CA-Zertifikate – wie das von Ihnen verlinkte – wahrscheinlich AIA und/oder CRLDP sowie AKI enthalten.alledavon sind nur für den Aussteller/das übergeordnete Element korrekt, den Sie ersetzen, und sollten daher ersetzt (oder entfernt) werden.

Alternativ können Sie Code schreiben. Verwenden Sie dazu denAPIist unkompliziert. Aber das gehört wahrscheinlich zu SO oderVielleichtsecurity.SX statt hier. (Und von Ihnen wird erwartet, dass Sie einen Teil der Arbeit erledigen.)

In Ihrem konkreten Beispiel ist ISRG Root X1 sowohl kreuzsigniert von Identrust DST X3 als auchals Wurzel-- wenn Sie vom Root-Zertifikat ausgehen, hat es kein AKIoderAIA/CRLDP, die entfernt werden müssen.

Update: Wie einnachfolgende verwandte FrageOpenSSL 3.0.0 und höher erlaubt keine Eingaben von Nicht-Root-Benutzern; es erfordert, dass das alte Zertifikat selbstsigniert ist (ein Root-Benutzer). Kommentare in der Quelle zeigen, dass dies immer beabsichtigt war, obwohl es bisher nicht effektiv durchgesetzt wurde.

verwandte Informationen