SSL-Standardeinstellungen in Liberty
Gibt das SSL-Standardzertifikat, den SSL-Keystore und die SSL-Konfiguration in Liberty an.
Standardzertifikat und Keystore
Damit Entwickler ohne großen Aufwand mit der Entwicklung beginnen können, können sie den Parameter createSSLCertificate im Befehl securityUtility angeben, um ein selbst signiertes Zertifikat zu erstellen. Sie können das Tool entweder direkt über die Befehlszeile aufrufen oder über einen Serveraufruf, um das Standardzertifikat und den Keystore beim Serverstart zu erstellen.
<keyStore id="defaultKeyStore" password="yourPassword" />
Wenn es für das Element defaultKeyStore eine Keystore-Konfiguration gibt und der Keystore beim Serverstart nicht vorhanden ist, ruft der Server den Parameter createSSLCertificate auf. Dieser Parameter erstellt den Keystore mit einem Kennwort, das in der Konfiguration angegeben ist.
- Position: Die Keystore-Datei heißt key.jks und befindet sich im Server- bzw. Clientverzeichnis resources/security.
- Keystore-Typ: Der Keystore-Typ ist JKS.
- Kennwort: Das in der Konfiguration enthaltene Kennwort.
- Typ: Das Zertifikat ist ein selbst signiertes Zertifikat.
- Größe: Die Standardzertifikatgröße ist 2048.
- Signaturalgorithmus: Der Signaturalgorithmus für das Zertifikat ist SHA256WITHRSA.
- Gültigkeit: Das Zertifikat ist 365 Tage gültig.
- Registrierter Name des Zertifikatsinhabers: Das Zertifikat wird wie folgt erstellt: CN=<Hostname>,OU=<Client- oder Servername>,O=ibm,C=US als registrierter Name des Zertifikatsinhabers.
Der Parameter createSSLCertificate kann in der Befehlszeile aufgerufen werden, wenn Benutzer das Zertifikat anpassen möchten.
SSL-Standardkonfiguration
Die für SSL erforderliche Minimalkonfiguration ist ein einzelnes Keystore-Element mit dem Namen defaultKeyStore. Wenn das Element defaultKeyStore in der Konfiguration vorhanden ist, erstellt die Laufzeit hierfür eine SSL-Konfiguration mit dem Namen defaultSSLConfig.
Details zu defaultSSLConfig:
- Protokoll: Wenn die IBM® JRE verwendet wird, ist das Protokoll standardmäßig auf SSL_TLSv2 gesetzt. Wenn die Oracle JRE verwendet wird, ist das Protokoll auf SSL gesetzt.
- Chiffrierwerte: Die Liste mit den Chiffrierwerten wird durch Abrufen einer Liste der unterstützten Chiffrierwerte aus der zugrunde liegenden JRE erstellt. Standardmäßig beschränkt sich die Liste auf alle Chiffrierwerte mit 128 Bit und höher und 3DES. RC4 wurde entfernt, da eine Aktivierung als nicht sicher angesehen wird. ECDHE-Chiffrierwerte wurden entfernt, weil sie Fehler verursachen können, wenn Sie einen Server aufrufen, der sie nicht unterstützt. Sie können die Liste mit den Chiffrierwerten anpassen, um sie einzuschließen.
- Clientauthentifizierung: Standardmäßig sind clientAuthentication und clientAuthenticationSupported inaktiviert.
- Keystore: In der Standardkonfiguration wird defaultKeyStore als Schlüssel und als Truststore verwendet.
Sie können der Datei server.xml ein Element defaultSSLConfig hinzufügen, um die SSL-Konfigurationseigenschaften anzupassen. Ein angepasstes ssl-Element mit dem Namen defaultSSLConfig wird wie die SSL-Standardkonfiguration behandelt, solange keine andere SSL-Konfiguration als Standardkonfiguration identifiziert wurde. Weitere Informationen finden Sie unter SSL-Konfigurationsattribute.
<sslDefault sslRef="customSSLConfiguration" />
Die Attribute aus der Liberty-SSL-Standardkonfiguration werden verwendet, um einen SSL-Kontext (SSLContext) zu erstellen. Dieses SSLContext-Element wird für den Prozess über die Java™-API SSLContext.setDefault() als SSLContext-Standardelement gesetzt. Wenn eine Anwendung einen API-Aufruf, wie beispielsweise httpURLConnection(), mit einer HTTPS-URL absetzt und keine SSL-Informationen bereitstellt, berücksichtigt die Anwendung das SSLContext-Standardelement des Prozesses. In diesem Fall ist das SSLContext-Element das Element, das mit der Liberty-SSL-Standardkonfiguration erstellt wurde.
Liberty verwendet das SSLContext-JSSE-Standardelement, wenn in Liberty keine SSL-Standardkonfiguration definiert wurde. Das SSLContext-JSSE-Standardelement verwendet die Datei cacerts als Keystore und Truststore. Liberty hat keine SSL-Standardkonfiguration, wenn das SSL-Feature nicht definiert ist, oder wenn die vorhandene SSL-Konfiguration nicht als Standardkonfiguration angegeben wurde. Die Standardkonfiguration ist dann entweder das genannte defaultSSLConfig-Element, das bei Definition eines defaultKeyStore-Elements implizit sein kann, oder eine alternative SSL-Konfiguration wird über das sslDefault-Element bezeichnet.
Die javax-Systemeigenschaften (javax.net.ssl.keystore) werden verwendet, um die Keystore- und Truststore-Informationen für den SSL-Standardkontext zu konfigurieren, und dürfen nicht verwendet werden. Wenn die Eigenschaften für den Prozess definiert werden, werden sie gelöscht, wenn die Methode SSLContext.setDefault() aufgerufen wird.