Java, SSL und HSLU EnterpriseLab

Das EnterpriseLab der HSLU verwendet für die Sicherung und Authenifizierung Ihrer Sites Zertifikate, welche auf einem 4kB-Rootzertifikat basieren. Das hat für den Zugriff mit Software welche auf Java basiert ein paar unerwartete Konsequenzen: Die Verwendung von 4kB grossen Zertifikaten unterliegt noch immer US-Amerikanischen Exportbeschränkungen. Das bedeutet, dass mit dem “normalen” JDK- bzw. JRE-Download weder die entsprechenden JAR-Dateien, noch die notwendigen Root-Zertifikate mitgeliefert werden. Es ist somit eine manuelle Nachinstallation notwendig. Das macht insofern keinen Spass, als dass diese Nachinstallation für jede vorhandene JRE (davon können sich auf einem System schon mal ein paar verschiedene Versionen ansammeln!) vollzogen werden muss.

Diese manuelle Nachinstallation umfasst zwei Schritte:

  1. Download und installieren der notwendigen, unlimitierten Crypto JAR-Dateien.
  2. Importieren des Zertifikates (EnterpriseLab Zertifikat, siehe unten).

Hier nun die Schritte im Einzelnen:
Als erstes erfolgt der Download von http://java.oracle.com/. Auf der Download-Seite für die jeweilige Java Major-Version (Java SE 7 oder 8) nach der Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy suchen und diese unscheinbare, kleine ZIP-Datei herunterladen. Diese enthält zwei JAR-Dateien und ein README mit der Installationsanleitung.
Kurzfassung: Im Verzeichnis /lib/security von jedem Java Runtime Environment (JRE) die zwei JAR-Dateien durch die Unlimited-Editionen ersetzen. Dass diese typisch älter sind als die bereits vorhandenen Exemplare braucht nicht zu beunruhigen. Wichtig: Wenn man ein JDK installiert hat, resultieren zwei JRE-Installationen: Einmal im JDK (/jre) und einmal die reine Runtime. Die typischen Pfäde für die verschiedenen Plattformen sind im README beschrieben.

Hinweis: Solange diese JAR-Dateien nicht richtig installiert bzw. ersetzt sind, erscheint z.B. in Eclipse eine Fehlermeldung, dass ein TFS-Handshake nicht möglich sei.

Im zweiten Schritt muss nun das Zertifikat des Enterpise-Labs in den Keystore importiert werden. Der Keystore ist die Datei cacerts, welche im identischen Verzeichnis liegt wie die JAR-Dateien. Somit muss auch hier der Import für jede einzelne JRE erfolgen. Dieser Import ist einfacher, wenn das dafür verwendete keytool-Binary (aus der richtigen JDK-Version!) im Suchpfad ist, und man das Zertifikat (*.crt-Datei) mindestens temporär ebenfalls in dieses Verzeichnis kopiert, weil damit werden die Pfäde deutlich kürzer. Das Kommando für den Import lautet:

keytool -import -alias enterpriselab -file enterpriselab.ch.crt -keystore cacerts -storepass changeit

Danach (und auch davor) kann man mit

keytool -list -keystore cacerts -storepass changeit

Den Inhalt des Keystores kontrollieren. Das Passwort “changeit” ist das echte Passwort, man kann die Option -storepass natürlich auch weglassen und ein ggf. verändertes Passwort auch im Prompt eingeben.

Hinweis: Solange das Zertifikat nicht richtig importiert ist, erscheint z.B. in Eclipse eine Fehlermeldung, dass die Zertifikatskette nicht validiert werden konnte.

Sind diese beiden Schritte erfolgreich abgeschlossen, kann man z.B. mit Eclipse Mylyn auf die Issues von GitLab zugreifen. Oder auch per http-Protokoll mit dem integrierten EGIT-Client arbeiten. Auch der Zugriff direkt mit dem Git-Client von NetBeans funktioniert danach.

Wer noch andere auf Java basierende SW-Tools verwendet, welche ihre “eigene” JRE gleich mitliefern, muss diese Nachinstallation mitunter auch dort durchführen. Es sei denn der Lieferant habe das bereits gemacht, oder aber die Software ignoriert ungültige Zertifikate schlichtweg…

Nachtrag vom 5. März 2015:
Das Zertifikat von gitlab.enterpriselab.ch wurde von *.gitlab.enterpriselab.ch auf gitlab.enterpriselab.ch geändert. Und hier ist dieses Zertifikat:
-----BEGIN CERTIFICATE-----
MIIGvTCCBaWgAwIBAgIHBslEpOeAPDANBgkqhkiG9w0BAQsFADCBjDELMAkGA1UE
BhMCSUwxFjAUBgNVBAoTDVN0YXJ0Q29tIEx0ZC4xKzApBgNVBAsTIlNlY3VyZSBE
aWdpdGFsIENlcnRpZmljYXRlIFNpZ25pbmcxODA2BgNVBAMTL1N0YXJ0Q29tIENs
YXNzIDIgUHJpbWFyeSBJbnRlcm1lZGlhdGUgU2VydmVyIENBMB4XDTE1MDIyNDE2
MTMxMloXDTE3MDIyNDEzMjYyMFowgbQxCzAJBgNVBAYTAkNIMQ8wDQYDVQQIEwZM
dXplcm4xDTALBgNVBAcTBEhvcncxNzA1BgNVBAoTLkx1Y2VybmUgVW5pdmVyc2l0
eSBvZiBBcHBsaWVkIFNjaWVuY2UgYW5kIEFydHMxIDAeBgNVBAMTF2dpdGxhYi5l
bnRlcnByaXNlbGFiLmNoMSowKAYJKoZIhvcNAQkBFhtwb3N0bWFzdGVyQGVudGVy
cHJpc2VsYWIuY2gwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtee3v
P5NcWLW7vve4DeyP9C05hu7fDhFnQbiUPWoLOtL3c+J7Ud8o2NBqSlCArT361xD4
Oqeu2EG4aqT/cOh9Gls/49HyU1JE54/FVPaUYhUPo+7cN5H4HR4PW8qXfttwyy5f
ifEI4H1m+1kXryvW6fUInYKbfe6bkSB+40k918/o5wSz3OLGSoSs6ytjZ1YnUOuv
T8ncgEmjelWuCn+wijSJXeuzoWTs3cgYMxyUCMFfGiU16PV1Rec9h6jIHDeIyUjh
bVSF+x6zXOTCgoT/o9fHGLCUzQvVqAAXPqF2yhVQq5azVIu+dzp2QzZAV4lTVNQB
7BnC+wc88Sy3CpsxAgMBAAGjggL4MIIC9DAJBgNVHRMEAjAAMAsGA1UdDwQEAwID
qDAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwHQYDVR0OBBYEFP/0z3NI
uZ5QiITEb9r7SMxMOaSeMB8GA1UdIwQYMBaAFBHbI0X9VMxqcW+EigPXvvcBLyaG
MDQGA1UdEQQtMCuCF2dpdGxhYi5lbnRlcnByaXNlbGFiLmNoghBlbnRlcnByaXNl
bGFiLmNoMIIBVgYDVR0gBIIBTTCCAUkwCAYGZ4EMAQICMIIBOwYLKwYBBAGBtTcB
AgMwggEqMC4GCCsGAQUFBwIBFiJodHRwOi8vd3d3LnN0YXJ0c3NsLmNvbS9wb2xp
Y3kucGRmMIH3BggrBgEFBQcCAjCB6jAnFiBTdGFydENvbSBDZXJ0aWZpY2F0aW9u
IEF1dGhvcml0eTADAgEBGoG+VGhpcyBjZXJ0aWZpY2F0ZSB3YXMgaXNzdWVkIGFj
Y29yZGluZyB0byB0aGUgQ2xhc3MgMiBWYWxpZGF0aW9uIHJlcXVpcmVtZW50cyBv
ZiB0aGUgU3RhcnRDb20gQ0EgcG9saWN5LCByZWxpYW5jZSBvbmx5IGZvciB0aGUg
aW50ZW5kZWQgcHVycG9zZSBpbiBjb21wbGlhbmNlIG9mIHRoZSByZWx5aW5nIHBh
cnR5IG9ibGlnYXRpb25zLjA1BgNVHR8ELjAsMCqgKKAmhiRodHRwOi8vY3JsLnN0
YXJ0c3NsLmNvbS9jcnQyLWNybC5jcmwwgY4GCCsGAQUFBwEBBIGBMH8wOQYIKwYB
BQUHMAGGLWh0dHA6Ly9vY3NwLnN0YXJ0c3NsLmNvbS9zdWIvY2xhc3MyL3NlcnZl
ci9jYTBCBggrBgEFBQcwAoY2aHR0cDovL2FpYS5zdGFydHNzbC5jb20vY2VydHMv
c3ViLmNsYXNzMi5zZXJ2ZXIuY2EuY3J0MCMGA1UdEgQcMBqGGGh0dHA6Ly93d3cu
c3RhcnRzc2wuY29tLzANBgkqhkiG9w0BAQsFAAOCAQEAkC+7fKiNyIk102LqKraK
jARXhiy3X5lxZXmqxEYnzLVKC1cuOnI33d47jklz83MZWe+KUnAZu49KofiHTQnI
ENjqBw2LSiNfpoQF2evcDmsU/2hyIT3Ou3WtXJFO1Oz91eB89dCAPY07Nm4Ww/1p
b4KvfLTEaKoqVbgMXqweSiqqsDZfZ4cHEy/jyzROAjhrLwRYqoGZ/ieX8srFD0Pc
uVzE/8N20GnXqQGKTCLztZK3CmGgMqV94v6HzWKHcQ+bj0n6l83lQYWG8nzIoFI4
xfQ/qfFQz6TEYmvD5kdDEDBr7ocKcOAQVAUKk241V+wxoDsb2gqjbpPb+xnZsiLR
Lw==
-----END CERTIFICATE-----

Einfach in eine *.crt oder *.cer-Datei kopieren, diese lässt sich dann mit dem keytool von Java importieren.

Ein Gedanke zu „Java, SSL und HSLU EnterpriseLab

  1. Pingback: Java und Let’s Encrypt Zertifikat | Roland Gisler

Leave a Reply

Your email address will not be published. Required fields are marked *