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.

Der Server erstellt den Standardkeystore und das Zertifikat, wenn ein Benutzer in der Datei server.xml ein Keystore-Element mit dem Namen defaultKeyStore verwendet hat. Beispiel:
<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.

Details zum Standardkeystore:
  • 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.
Standardzertifikat, das mit Liberty-Details erstellt wird:
  • 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.

Anmerkung: Die von einem eigensständigen Liberty-Server selbst signierten Zertifikate sind nicht für den Produktionseinsatz vorgesehen. Sie wurden für Entwickler erstellt. Sie sind zwar nicht weniger sicher, als Zertifikate, die von einer anerkannten Zertifizierungsstelle ausgestellt wurden, dennoch müssen Zertifikate, die in einer Produktionsumgebung verwendet werden, ordnungsgemäß verkettet und von einer anerkannten Zertifizierungsstelle ausgegeben oder signiert worden sein. Die verketteten Zertifikate, die vom Verbundcontroller an Member ausgegeben werden, sind signierte Zertifikate.

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.

Wenn Sie eine anderes ssl-Element in der Konfiguration für die SSL-Standardkonfiguration angeben möchten, kann dies von den Benutzern über das sslDefault-Element ermittelt werden.
<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.


Symbol das den Typ des Artikels anzeigt. Referenzartikel



Symbol für Zeitmarke Letzte Aktualisierung: 01.12.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-libcore-mp&topic=rwlp_liberty_ssl_defaults
Dateiname: rwlp_liberty_ssl_defaults.html