Zertifikate für SSL erstellen
Kontext
Der Zugriff auf das Wahllokalsystem soll über eine gesicherte Verbindung erfolgen (siehe Architektur der Laufzeitumgebung). Bei der Entwicklung kommen Reverse-Proxies zum Einsatz, die eine HTTPS-Verbindung verlangen, aber mit den Services dann via HTTP kommunizieren. Für die HTTPS-Verbindungen müssen die Reverse-Proxies entsprechend Zertifikate bereitstellen.
Die Verwendung der Zertifikate ist in der Konfiguration des Nginx (nginx.conf) zu finden.
Zertifikat erstellen
Public und Private Key werden mit OpenSSL erzeugt:
# Zertifikat für ca. 10 Jahre erstellen
openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout key.pem -out cert.pemDabei werden diverse Parameter abgefragt. Folgende Werte sollten dabei verwendet werden:
- country:
DE - province:
Bavaria - city:
Munich - organization:
WLS - organizational unit:
IT@m - common name: Hier muss der FQDN des Reverse-Proxies verwendet werden (siehe
server_nameinnginx.conf).
Truststore erstellen
Services, die eine HTTPS-Verbindung aufbauen müssen, benötigen entsprechend einen Truststore. Dieser wird wie folgt erstellt:
# Konvertierung des Public Key
openssl x509 -outform der -in cert.pem -out cert.der
# Erstellung des Truststore
keytool -importcert -alias wls-auth-service -file cert.der -keystore truststore.p12 -storetype PKCS12 -storepass changeitTruststore einbinden
Die Einbindung des Truststore in einen Service erfolgt durch folgende VM-Options:
-Djavax.net.ssl.trustStore=./../stack/reverse-proxy-auth-service/ssl/truststore.p12 -Djavax.net.ssl.trustStorePassword=changeit -Djavax.net.ssl.trustStoreType=PKCS12