Schlüsselpaar für WS-Security erstellen
Verwendung
-
Absichern eines Web-Service-Providers ohne Security Token Service.
-
Authentifizierung eines Clients bei einem Web-Service-Provider ohne Security Token Service
Die Authentifizierung erfolgt einmal pro Session über ein selbst oder extern signiertes Schlüsselpaar direkt am Webservice.
Selbstsigniertes Schlüsselpaar erstellen
So gehen Sie vor
-
Generieren Sie ein Schlüsselpaar mit der Erweiterung
SubjectKeyIdentifier
.Setzen Sie dazu die Optionen gemäß Ihren Anforderungen:
openssl req -x509 -days 365 -nodes -newkey rsa:2048 -subj "/C=myCountry/ST=myState/L=myCity/O=myOrganization/OU=myDepartment/CN=myServerName" ‑keyout selfsigned.key -out selfsigned.crt -extensions v3_ca
-
Konvertieren Sie das im Schritt 1 generierte Schlüsselpaar in das PKCS12-Format, um es in den Java-Keystore importieren zu können. Dabei müssen Sie ein Passwort vergeben.
openssl pkcs12 -export -in selfsigned.crt `‑`inkey selfsigned.key `‑`out selfsigned.p12
-
Importieren Sie die PKCS12-Datei in den Java-Keystore.
keytool -importkeystore -srckeystore selfsigned.p12 -srcstoretype pkcs12 ‑srcalias 1 -srcstorepass INUBIT -destkeystore selfsigned.keystore.jks ‑destalias tomcat -deststorepass <yourPassword>
-
Generieren Sie einen JKS-Truststore mit dem Service-Zertifikat. Als Passwort geben Sie das im Schritt 2 vergebene Passwort an.
keytool -importcert -keystore selfsigned.truststore.jks -file selfsigned.crt -alias tomcat -storepass <yourPassword>
Extern signiertes Schlüsselpaar erstellen
So gehen Sie vor
-
Generieren Sie einen Keystore mit einem automatisch generierten Zertifikat.
Setzen Sie dazu die Optionen gemäß Ihren Anforderungen:
keytool -genkey -keyalg RSA -dname "CN=myServerName, O=myCompany IS, C=de" -validity 999 -keystore private.keystore -keypass <yourPassword> ‑storepass <yourPassword> -alias tomcat
-
Exportieren Sie die Zertifizierungsanforderung anhand des privaten Schlüssels.
keytool -certreq -v -alias tomcat -keystore private.keystore -storepass <yourPassword> -file server_request.csr
-
Übermitteln Sie die Zertifizierungsanforderung an eine von ihnen gewählte Zertifizierungsstelle (Certificate Authority/ CA), wie z.B. D‑Trust. Die Zertifizierungsstelle sendet ihnen ein signiertes Zertifikat für den Web-Service (hier
CAcert.cer
) und ihren eigenen öffentliches Schlüssel (hierpublic.cer
) zurück. -
Listen Sie alle Informationen des Service-Zertifikats auf. Es müssen 509v3 und SubjectKeyIdentifier angezeigt werden.
keytool -printcert -v -file public.cer
-
Importieren Sie das CA-Zertifikat in den privaten Keystore.
keytool -import -trustcacerts -alias cacert -file CAcert.crt -keystore private.keystore -storepass <yourPassword>
-
Importieren Sie den öffentlichen Schlüssel in den privaten Keystore.
keytool -import -trustcacerts -alias tomcat -file public.cer ‑keystore private.keystore -storepass <yourPassword>
-
Generieren Sie den Truststore mit dem öffentlichen Schlüssel.
keytool -import -alias tomcat -file public.cer -keystore public.keystore ‑storepass <yourPassword>
-
Importieren Sie das CA-Zertifikat in den Truststore zur Überprüfung der Zertifikatskette (certificate chain check).
keytool -import -alias cacert -file CAcert.crt -keystore public.keystore ‑storepass <yourPassword>