Zweistufige CA-Infrastruktur: CA in Java-Keystore importieren

von Thomas, assono GmbH, Standort Kiel, 03.08.2020

Wenn man Java-Programme schreibt, die zum Beispiel REST APIs oder Web Services TLS-geschützt aufrufen wollen und der Server mit einem unserer Zertifikate ausgestattet ist, dann sollte die JVM auch unseren Zertifikaten vertrauen, damit es einfach klappt.

Das zeige ich hier anhand einer JVM der Version 8, so wie sie in einem aktuellen Domino V11-Server läuft, aber der Vorgang lässt sich leicht auf andere Versionen übertragen.

Der Standard-Keystore einer JVM ist in der Datei {JVM-Pfad}/lib/security. Bei Java liegt mit keytool das passende Werkzeug bei, um den Schlüsselspeicher zu verwalten, u.a. um neue Zertifikate zu importieren. Das Standard-Kennwort beim Java-Keystore ist: changeit

Beispiel hier: Die JVM eines Domino V11-Servers unter Linux unter /opt/hcl, die Zertifikate liegen unter /local/assono-ca.

Zertifikate importieren

Zunächst importieren wir das Root-Zertifikat:

cd /opt/hcl/domino/notes/latest/linux/jvm
bin/keytool -trustcacerts -keystore lib/security/cacerts -import -alias assono -file /local/assono-ca/root/assono-cert.pem
Geben Sie das Schlüsselspeicherkennwort ein:
Eigner: EMAILADDRESS=tbahn@assono.de, CN=assono, O=assono GmbH, L=Schnwentinental, ST=Schleswig-Holstein, C=DE
Aussteller: EMAILADDRESS=tbahn@assono.de, CN=assono, O=assono GmbH, L=Schnwentinental, ST=Schleswig-Holstein, C=DE
Seriennummer: 6c9058673ba9438d10151a2cbd42b224955a5924
Gültig von: 07.07.20 11:35 bis: 02.07.40 11:35
Fingerabdrücke des Zertifikats:
         MD5:  01:23:EC:E0:C4:38:59:07:5C:45:71:9F:A4:CA:37:B9
         SHA1: 1B:5D:DB:16:7B:51:8D:DF:D2:20:84:44:42:A8:B5:01:55:B2:0B:61
         SHA256: E5:49:5A:B2:34:03:C1:DA:51:0F:6F:D8:59:6A:34:F4:91:10:A9:3E:92:CA:4E:EF:DE:32:EB:FB:0B:B0:BA:4C
         Signaturalgorithmusname: SHA256withRSA
         Version: 3
Erweiterungen:
#1: ObjectId: 2.5.29.35 Criticality=false
AuthorityKeyIdentifier [
KeyIdentifier [
0000: 41 aa 79 f1 2e af 42 10  11 bb 33 8b 32 da a8 b5  A.y...B...3.2...
0010: 49 64 f6 43                                        Id.C
]
]
#2: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 41 aa 79 f1 2e af 42 10  11 bb 33 8b 32 da a8 b5  A.y...B...3.2...
0010: 49 64 f6 43                                        Id.C
]
]
#3: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
CA:true
PathLen:2147483647
]
Soll dieses Zertifikat anerkannt werden? [nein]:  ja
Das Zertifikat wurde im Schlüsselspeicher hinzugefügt.

Dann das Intermediate-CA-Zertifikat:

bin/keytool -trustcacerts -keystore lib/security/cacerts -import -alias servers.assono -file /local/assono-ca/servers/servers-cert.pem
Geben Sie das Schlüsselspeicherkennwort ein:
Das Zertifikat wurde im Schlüsselspeicher hinzugefügt.

Und wie üblich noch einmal kontrollieren:

bin/keytool -keystore lib/security/cacerts -list
Geben Sie das Schlüsselspeicherkennwort ein:
Schlüsselspeichertyp: jks
Schlüsselspeicherprovider: IBMJCE
Der Schlüsselspeicher enthält Einträge 92
[…]
servers.assono, 07.07.2020, trustedCertEntry,
Elektronischer Fingerabdruck des Zertifikats (SHA1): 26:A9:DA:0C:54:FC:71:14:CF:34:96:F3:C6:6A:6E:14:29:04:46:1A
[…]
assono, 07.07.2020, trustedCertEntry,
Elektronischer Fingerabdruck des Zertifikats (SHA1): 1B:5D:DB:16:7B:51:8D:DF:D2:20:84:44:42:A8:B5:01:55:B2:0B:61
[…]

Der Keystore der JVM enthielt schon vor unseren Importen 90 Zertifikate, und um die beiden neuen zu finden, darf man etwas suchen.

In der nächsten Folge geht es dann um den Sametime Proxy Server, der auf einem Apache HTTP Server basiert. Auch dort werden wir das keytool wieder benutzen, aber diesmal werden wir damit einen neuen Schlüssel und einen CSR erstellen, und kommen dann auf openssl zum Signieren zurück.

Thomas Bahn

Thomas Bahn

Diplom-Mathematiker, IT-Spezialist & Speaker auf Fachkonferenzen

Thomas Bahn ist Mitgründer und Geschäftsführer der assono GmbH. Seit mehr als 20 Jahren berät er erfolgreich Unternehmen aus ganz Deutschland rund um das Thema Software und Digitalisierung. Insbesondere in den Bereichen HCL Notes und Domino (ehemals IBM) als auch bei aktuellen, unternehmensrelevanten KI-Themen wie Chatbots kennt er die neusten Entwicklungen und weiß, wie diese sich gewinnbringend für Unternehmen einsetzen lassen. Aufgrund seines Expertenwissens ist Thomas Bahn regelmäßiger Sprecher auf nationalen und internationalen Fachkonferenzen.

Nächste Artikel in dieser Reihe:

Fachbeitrag Administration HCL Domino Sicherheit Für Entwickler

Sie haben Fragen zu diesem Artikel? Kontaktieren Sie uns gerne: blog@assono.de

Sie haben Interesse an diesem Thema?

Gerne bieten wir Ihnen eine individuelle Beratung oder einen Workshop an.

Kontaktieren Sie uns

Weitere interessante Artikel