Zertifikatsverwaltung mit Java (Teil 1)

Zertifikatsverwaltung mit Java (Teil 1)

Eingetragen bei: Java, Zertifikate | 1

Mit dem Java keytool lassen sich Zertifikate verwalten. Will man zum Beispiel https mit Tomcat verwenden kommt man nicht um Zertifikate und das keytool herum.

Das keytool befindet sich im bin Ordner der Javainstallation (Windows: C:\Program Files\Java\jre7\bin\keytool.exe).
Die wichtigsten Befehle sind:

  • certreq: Generiert eine Zertifikatanforderung
  • delete: Löscht einen Eintrag
  • exportcert: Exportiert ein Zertifikat
  • genkeypair: Generiert ein Schlüsselpaar
  • importcert: Importiert ein Zertifikat oder eine Zertifikatkette
  • list: Listet die Einträge in einem Keystore auf
  • selfcert: Erstellt ein selbstsigniertes Zertifikat

Ich habe für die schnellere und einfachere Verwendung eine kleine Sammlung von *.bat Dateien erstellt.

1_createkeystore.bat

Befehlszeile:

Erläuterung:

Mit diesem Befehl erstellt man ein neues Schlüsselpaar und eine neue keystore Datei. Also die Datei, in der die Schlüssel und die Zertifikate abgelegt werden.

  • keyalg gibt den Algorithmus an, mit dem die Schlüssel erstellt werden
  • keysize gibt die Größe der erzeugten Schlüssel an
  • keystore gibt den Pfad und Namen der keystore Datei an. Falls man die Option weglässt speichert Java die Datei im Defaultpfad (Windows: %USERPROFILE%\.keystore)
  • storepass definiert das Passwort des keystore. Wird es nicht angegeben, wird keytool danach fragen

Ruft man die bat Datei startet keytool und fragt verschiedene Informationen ab. Zuerst wird nach Vor- und Nachname. Will man ein Serverzertifikat erstellen muss man hier den FQDN angeben: example.com. Die restlichen Fragen sind selbsterklärend bzw. können auch ggf. leer gelassen werden. Umlaute sollte man vermeiden.
Zuletzt kann man ein Passwort für den generierten Schlüssel anlegen. Dies muss nicht das gleiche wie das Passwort des keystore sein. Es gibt jedoch Programme, die Probleme haben, wenn die Passwörter unterschiedlich sind.

2_csr.bat

Befehlszeile:

 

Erläuterung:

Möchte man ein Zertifikat von einem Zertifikatsaussteller, braucht einen Certificate Signing Request (CSR). Diesen erstellt man mit dem Befehl certreq.

  • sigalg gibt den Algorithmus an, mit dem der Request erstellt wird
  • file gibt den Pfad zur Ausgabedatei mit dem CSR an
  • keystore gibt den Pfad der keystore Datei an
  • storepass ist das Passwort für den keystore. Wird es nicht angegeben, wird keytool danach fragen

Der Inhalt der Datei sind dann so ähnlich aus wie:

—–BEGIN NEW CERTIFICATE REQUEST—–
MIIC+jCCAeICAQAwgYQxCzAJBgNVBAYTAkRFMRswGQYDVQQIExJCYWRlbi1XdWVydHRlbWJlcmcx
EjAQBgNVBAcTCVN0dXR0Z2FydDEVMBMGA1UEChMMT3JnYW5pc2F0aW9uMRcwFQYDVQQLEw5TcGV6
aWFsZWluaGVpdDEUMBIGA1UEAxMLZXhhbXBsZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
ggEKAoIBAQCsN4C0441kS8XtYSFmtwSkgux5zgwujOReP4Pu+pI/OyRevJHTdt+b0Nfo2XSbEMBm
KSwt9CADn9ypzW0yJu8Aia3LeFOXfD4tlKSXRBUAw440m7CjEntaRgiPWqBu9rql1+aZEx1SMVvK
WX9zE2qEXjn0yFHb3QZT/krQsFiXM+kr4swXcJH/3VHOvxU5hu5EXuLGAf8188rjFeaqBt/NREN7
opAz7s3FzFI5d3G7ED9cl/6TP5Uh4KeYmygPcnklHQMJeCilYmWEHuj7jktI/aA2U7a19IJZSb4e
/ooZ8UFD4uidyCc0dipT5Z9YxTYOZ73jxQN+7gKRv9ZVHjBZAgMBAAGgMDAuBgkqhkiG9w0BCQ4x
ITAfMB0GA1UdDgQWBBTdto0F7v/IIHBNPgl0TZd8cLp4zjANBgkqhkiG9w0BAQsFAAOCAQEAatMn
1SLkDC/MI72Y0C0Q8bpDscM3LB50mUoQWK2YssBZJWIA+fmO6gb4tvkxcXJT+8+/Z4T4l526rSnr
dHdjG/XlYo26YKfCoj354UsbayWOFZSGUFAsRYyG5zgvTg8eDWkSHQDTVtM3IivGn3RlYlHPLyud
Cd+0PiCHZu+7YAspXD9Ym4PMve5oN6qP3bQnBe3L3ujVOPXQEHZCKUVJfgCAtEK0P2uMvFAHb70e
bzkemGaLE3r0OY685VV+U7j/uEpPed7MTwRVQ7rrk1A/yAUK1VX4khT9znb5L2F+AnskrAdV87LZ
+J5kDtiG1lvxN/WZX8h/Oh+/u6o/yOejJQ==
—–END NEW CERTIFICATE REQUEST—–

Diesen Request gibt man dann einem Zertifikatsaussteller und erhält dann sein Zertifikat.

Eine Antwort

  1. […] besten erstellt man sich einen neuen keystore (siehe Teil 1) und signiert dann in diesem keystore selbst. Ich achte immer darauf keystores mit selbstsignierten […]

Hinterlasse einen Kommentar