Webanwendung und Server für die Clientzertifikatsauthentifizierung konfigurieren

Sie können Ihre Webanwendung in Liberty mithilfe der SSL-Clientauthentifizierung konfigurieren.

Vorbereitungen

In diesem Abschnitt wird vorausgesetzt, dass Sie die SSL-Zertifikate bereits erstellt haben, z. B. wie im Abschnitt SSL-Zertifikate über die Befehlszeile erstellenbeschrieben.

Informationen zu dieser Task

Clientzertifikatsauthentifizierung tritt auf, wenn die Serverseite anfordert, dass die Clientseite ein Zertifikat sendet. Ein WebSphere® -Server kann für die Clientzertifikatsauthentifizierung in der SSL-Konfiguration konfiguriert werden. Dazu fügen Sie das Feature transportSecurity-1.0 Liberty zusammen mit Code, der dem Server die Keystore-Informationen für die Authentifizierung mitteilt, zur Datei server.xml hinzu.

Ausführliche Informationen dazu, welche Aspekte von SSL unterstützt werden, finden Sie unter Liberty-Features.

Vorgehensweise

  1. Stellen Sie sicher, dass der Implementierungsdeskriptor für Ihre Webanwendung Clientzertifikatsauthentifizierung als zu verwendende Authentifizierungsmethode angibt.
    Überprüfen Sie, ob der Implementierungsdeskriptor die folgenden Elemente enthält:
    <auth-method>CLIENT-CERT</auth-method>
    Hinweis: Sie können ein Tool wie Rational® Application Developer verwenden, um den Implementierungsdeskriptor zu erstellen.
  2. Optional: Generieren Sie ein SSL-Zertifikat über die Befehlszeile. Weitere Informationen finden Sie unter BefehlsecurityUtility.
  3. Konfigurieren Sie Ihren Server für die Aktivierung der SSL-Clientauthentifizierung, indem Sie die folgenden Zeilen zur Datei server.xml hinzufügen:
       <featureManager>
            <feature>transportSecurity-1.0</feature>
       <featureManager>
    
       <ssl id="defaultSSLConfig" keyStoreRef="defaultKeyStore"
            trustStoreRef="defaultTrustStore" clientAuthenticationSupported="true" />
       <keyStore id="defaultKeyStore" location="key.jks" type="JKS" password="defaultPWD" />
       <keyStore id="defaultTrustStore" location="trust.jks" type="JKS" password="defaultPWD" />
    • Wenn Sie clientAuthentication="true" angeben, fordert der Server an, dass ein Client ein Zertifikat sendet. Falls der Client kein Zertifikat hat oder falls der Server das Zertifikat nicht anerkennt, ist der Handshake jedoch nicht erfolgreich.
    • Wenn Sie clientAuthenticationSupported="true" angeben, fordert der Server an, dass ein Client ein Zertifikat sendet. Falls der Client kein Zertifikat hat oder falls der Server das Zertifikat nicht anerkennt, kann der Handshake trotzdem erfolgreich sein.
    • Wenn Sie weder clientAuthentication noch clientAuthenticationSupported angeben, oder wenn Sie clientAuthentication="false" oder clientAuthenticationSupported="false" angeben, fordert der Server während des Handshake kein Zertifikat vom Client an.
  4. Fügen Sie Ihrem Browser ein Clientzertifikat hinzu. Informationen zum Hinzufügen von Clientzertifikaten zu Ihrem Browser entnehmen Sie der Dokumentation zu Ihrem Browser.
  5. Stellen Sie sicher, dass der Server die verwendeten Clientzertifikate anerkennt.
  6. Stellen Sie sicher, dass die für die Clientauthentifizierung verwendeten Clientzertifikate einer Benutzeridentität in Ihrer Registry zugeordnet sind.
    • Bei der Basisregistry ist die Benutzeridentität der allgemeine Name (CN, Common Name) aus dem definierten Namen (DN, Distinguished Name) des Zertifikats.
    • Bei der LDAP-Registry (Lightweight Directory Access Protocol) muss der DN aus dem Clientzertifikat in der LDAP-Registry enthalten sein.
  7. Fügen Sie die folgende Zeile zur Datei server.xml hinzu, um nur die Basisauthentifizierung, die Benutzer-ID und das Kennwort zu verwenden, wenn die Clientzertifikatsauthentifizierung nicht erfolgreich ist.
    <webAppSecurity allowFailOverToBasicAuth="true" />
    Anmerkung: Wenn Sie allowFailOverToBasicAuth="false" angeben oder allowFailOvertoBasicAuthnicht angeben und die Clientzertifikatsauthentifizierung nicht erfolgreich ist, generiert die Anforderung eine403 Authentication errorund der Client wird nicht zur Basisauthentifizierung aufgefordert.