So importieren Sie ein .cer-Zertifikat in einen Java KeyStore

Java Top

Ich habe gerade den neuen Learn Spring- Kurs angekündigt , der sich auf die Grundlagen von Spring 5 und Spring Boot 2 konzentriert:

>> Überprüfen Sie den Kurs

1. Übersicht

Ein KeyStore ist, wie der Name schon sagt, im Grunde ein Repository für Zertifikate, öffentliche und private Schlüssel. Darüber hinaus werden JDK-Distributionen mit einer ausführbaren Datei ausgeliefert, um sie zu verwalten, dem Keytool .

Auf der anderen Seite können Zertifikate viele Erweiterungen haben. Wir müssen jedoch berücksichtigen, dass eine CER-Datei öffentliche X.509-Schlüssel enthält und daher nur zur Identitätsprüfung verwendet werden kann.

In diesem kurzen Artikel sehen wir uns an, wie Sie eine CER- Datei in einen Java KeyStore importieren.

2. Importieren eines Zertifikats

Importieren wir nun ohne weiteres die öffentliche Baeldung-Zertifikatdatei in einen KeyStore-Beispiel.

Das Keytool hat viele Optionen, aber die, an der wir interessiert sind, ist importcert, das so einfach ist wie sein Name. Da ein KeyStore normalerweise unterschiedliche Einträge enthält, müssen wir das Alias- Argument verwenden, um ihm einen eindeutigen Namen zuzuweisen:

> keytool -importcert -alias baeldung_public_cert -file baeldung.cer -keystore sample_keystore > Enter keystore password: ... > Trust this certificate? [no]: y > Certificate was added to keystore 

Obwohl der Befehl zur Eingabe eines Kennworts und einer Bestätigung auffordert, können wir diese umgehen, indem wir die Argumente storepass und noprompt hinzufügen . Dies ist besonders praktisch, wenn Sie Keytool über ein Skript ausführen :

> keytool -importcert -alias baeldung_public_cert -file baeldung.cer -keystore sample_keystore -storepass pass123 -noprompt > Certificate was added to keystore

Wenn der KeyStore nicht vorhanden ist, wird er automatisch generiert. In diesem Fall können wir das Format über das Argument storetype festlegen . Wenn nicht angegeben, wird im KeyStore-Format standardmäßig JKS verwendet, wenn Java 8 oder älter verwendet wird. Ab Java 9 wird standardmäßig PKCS12 verwendet :

> keytool -importcert -alias baeldung_public_cert -file baeldung.cer -keystore sample_keystore -storetype PKCS12 > Enter keystore password: > Re-enter new password: ... > Trust this certificate? [no]: y > Certificate was added to keystore 

Hier haben wir einen PKCS12 KeyStore erstellt. Der Hauptunterschied zwischen JKS und PKCS12 besteht darin, dass JKS ein Java-spezifisches Format ist, während PKCS12 eine standardisierte Methode zum Speichern von Schlüsseln und Zertifikaten ist

Bei Bedarf können wir diese Vorgänge auch programmgesteuert ausführen.

3. Fazit

In diesem Tutorial haben wir beschrieben, wie Sie eine CER-Datei in einen KeyStore importieren. Zu diesem Zweck haben wir die importcert- Option des Keytools verwendet .

Java unten

Ich habe gerade den neuen Learn Spring- Kurs angekündigt , der sich auf die Grundlagen von Spring 5 und Spring Boot 2 konzentriert:

>> Überprüfen Sie den Kurs