SSL-Authentifizierung mit Clientzertifikat
Clientsoftware, die mit dem SSL-Protokoll eine sichere Verbindung zu einem Server herstellen soll, wird mit dem SSL-Protokoll oder dem erweiterten Protokoll TLS (Transport Layer Security) initialisiert, damit ein SSL-Handshake mit SSL-Zertifikaten durchgeführt wird. Ein persönliches Zertifikat kann den Server oder einen bestimmten Client repräsentieren und wird von einer Zertifizierungsstelle signiert, um sicherzustellen, dass es ordnungsgemäß identifiziert werden kann.
SSL stellt sicher, dass dem Administrator das Unterzeichnerzertifikat der Zertifizierungsstelle zur Verfügung steht, mit dem das persönliche Zertifikat signiert wird, und dass dieses Zertifikat im Truststore des Clients und/oder des Servers gespeichert wird. Beim Verbindungshandshake werden SSL-Zertifikate verwendet, um die Clientzertifikatauthentifizierung durchzuführen.
- Die Serverseite muss bestimmen, ob eine Clientauthentifizierung stattfinden soll. Die Clientauthentifizierung muss in der SSL-Konfiguration des Servers aktiviert sein und die CSIv2-Konfiguration (Common Secure Interoperability Version 2) des Inter-ORB Protocol (IIOP) muss verwendet werden.
- Die CSIv2-Konfiguration muss im Rahmen der globalen Sicherheit und nicht in einer Sicherheitsdomäne definiert werden.
- Das Unterzeichnerzertifikat des Clients muss aus dem Keystore des Clients extrahiert und zum Truststore des Servers hinzugefügt werden.
- Das Unterzeichnerzertifikat des Servers muss aus dem Keystore des Servers extrahiert und zum Truststore des Clients hinzugefügt werden.
WebSphere-Server für Clientauthentifizierung konfigurieren
Die Clientzertifikatauthentifizierung findet statt, wenn die Serverseite vom Client das Senden eines Zertifikats anfordert. Ein WebSphere-Server kann in der SSL-Konfiguration für die Clientzertifikatauthentifizierung konfiguriert werden. Falls die Clientauthentifizierung für IIOP erforderlich ist, muss sie allerdings in der CSIv2-Konfiguration festgelegt werden.
- Klicken Sie auf .
- Wählen Sie eine SSL-Konfiguration aus.
- Wählen Sie unter "Weitere Eigenschaften" den Eintrag "Einstellungen für Datenschutzniveau" aus.
- Wählen Sie unter "Clientauthentifizierung" den Eintrag Erforderlich aus.
- Klicken Sie auf OK, um die Änderungen zu speichern.
- Klicken Sie auf .
- Wählen Sie unter "RMI/IIOP-Sicherheit" Eingehende CSIv2-Kommunikation aus.
- Wählen Sie im Abschnitt "CSIv2-Transportebene" unter "Authentifizierung mit Clientzertifikat" Erforderlich aus.
- Klicken Sie auf OK, um die Änderungen zu speichern.
Falls die Clientseite für die Clientauthentifizierung konfiguriert ist, muss das Unterzeichnerzertifikat des Clients zum Truststore des Servers hinzugefügt werden. Wenn das Zertifikat des Clients in einer Zertifikatsdatei enthalten ist, kann diese zum Truststore des Servers hinzugefügt werden.
- Klicken Sie auf .
- Wählen Sie den für Clientauthentifizierung konfigurierten Truststore aus.
- Wählen Sie unter "Weitere Eigenschaften" den Eintrag "Unterzeichnerzertifikate" aus.
- Klicken Sie auf Hinzufügen.
- Geben Sie im Aliasfeld einen Aliasnamen ein, unter dem das Zertifikat gespeichert werden soll.
- Geben Sie im Feld "Dateiname" den vollständigen Pfad zur Zertifikatsdatei an.
- Klicken Sie auf OK, um die Änderungen zu speichern.
Clientseite für Clientauthentifizierung konfigurieren
Clients:
Verwaltungsclients, Thin Clients oder normale Clients müssen in ihrem Keystore ein persönliches Zertifikat enthalten. Der WebSphere-Standard-Keystore für Clients wird erstellt, wenn im installierten WebSphere Application Server bereits ein persönliches Zertifikat enthalten ist. Dieser Keystore ist in der Datei ssl.client.props der Eigenschaft com.ibm.ssl.keyStore property enthalten. Client-Keystores werden nicht von WebSphere Application Server verwaltet. Zum Extrahieren des Zertifikats in eine Zertifikatsdatei können Sie das Schlüsselverwaltungsdienstprogramm iKeyman oder das Java™-Dienstprogramm keytool verwenden.
- Starten Sie iKeyman.
- Wählen Sie aus.
- Geben Sie den Pfad zur Keystore-Datei ein. Sie finden den Pfad in der Datei ssl.client.props.
- Klicken Sie auf OK.
- Geben Sie das Kennwort für den Keystore ein und klicken Sie auf OK.
- Wählen Sie unter "Persönliche Zertifikate" das Clientstandardzertifikat aus.
- Geben Sie einen Pfad- und Dateinamen für die Zertifikatsdatei ein und klicken Sie auf OK.
Die Datei mit dem extrahierten Zertifikat kann verwendet werden, um den Unterzeichner zum Truststore des Servers hinzuzufügen. Führen Sie die Schritte im Abschnitt "WebSphere-Server für Clientauthentifizierung konfigurieren" aus, um diesen Unterzeichner zum Server-Truststore hinzuzufügen.
- SSL aktivieren:
com.ibm.CSI.performTransportAssocSSLTLSSupported=true com.ibm.CSI.performTransportAssocSSLTLSRequired=false
- Clientauthentifizierung auf Nachrichtenebene inaktivieren:
com.ibm.CSI.performClientAuthenticationRequired=false com.ibm.CSI.performClientAuthenticationSupported=false
- Clientauthentifizierung auf Transportebene aktivieren (nicht erforderlich, aber unterstützt):
com.ibm.CSI.performTLClientAuthenticationRequired=false com.ibm.CSI.performTLClientAuthenticationSupported=true
Thin Clients und normale Clients verwenden unter Umständen nicht die SSL-Eigenschaftendatei ssl.client.props von WebSphere Application Server. Wahrscheinlich verwenden sie die Java-Systemeigenschaften, um den Client-Keystore und -Truststore festzulegen. Das Unterzeichnerzertifikat des Servers muss zu dem Truststore hinzugefügt werden, der mit der Systemeigenschaft java.net.ssl.trustStore angegeben ist. Zum Hinzufügen des Unterzeichnerzertifikats können Sie keytool oder iKeyman verwenden. Der Unterzeichner muss aus dem persönlichen Zertifikat in dem von der Systemeigenschaft javax.net.ssl.keyStore angegebenen Keystore extrahiert und zum Truststore des Servers hinzugefügt werden.
javax.net.ssl.keyStore
javax.net.ssl.keyStorePassword
javax.net.ssl.keyStoreType
javax.net.ssl.trustStore
javax.net.ssl.trustStorePassword
javax.net.ssl.trustStoreType
Als Client eingesetzter Server:
Der Client kann ein WebSphere-Server sein, der als Client eingesetzt wird. Bestimmen Sie in dem Fall, welche SSL-Konfiguration auf der Clientseite der Kommunikation verwendet wird, extrahieren Sie den Unterzeichner aus dem zugehörigen Zertifikat und fügen Sie ihn zum Truststore der Serverseite hinzu. Sie sollten den Unterzeichner des Stammzertifikats verwenden.
- Klicken Sie auf "Sicherheit > Verwaltung von SSL-Zertifikaten und Schlüsseln > Keystores und Zertifikate".
- Wählen Sie in der Pulldown-Liste "Keystore-Nutzung" Keystore für Stammzertifikate aus.
- Wählen Sie DmgrDefaultRootStore (für einen Network Deployment-Server) oder NodeDefaultRootStore (für einen Anwendungsserver) aus.
- Wählen Sie unter "Weitere Eigenschaften" Persönliche Zertifikate aus.
- Wählen Sie das Standardstammzertifikat aus (das in der Regel den Namen root hat) und klicken Sie auf Extrahieren.
- Geben Sie im Feld "Name der Zertifikatsdatei" den vollständigen Pfad zu der Datei ein, die das Zertifikat enthalten soll.
- Klicken Sie auf OK, um die Konfiguration zu speichern.
Die erstellte Zertifikatsdatei kann zur Serverseite transportiert und zum Truststore des Servers hinzugefügt werden.
Wenn ein Server als Client eingesetzt wird, benötigt der clientseitige Server den Unterzeichner vom Zielserver. Dieser Unterzeichner kann mit der Option Vom Port abrufen für Unterzeichnerzertifikate abgerufen werden.
- Klicken Sie auf .
- Wählen Sie in der Sammlung den Truststore des Servers aus.
- Wählen Sie unter "Weitere Eigenschaften" Unterzeichnerzertifikate aus.
- Klicken Sie auf Von Port abrufen.
- Geben Sie den Namen des Zielhosts und einen Zielport ein.
- Geben Sie einen Aliasnamen für das Zertifikat ein.
- Klicken Sie auf Unterzeichnerdaten abrufen.
- Klicken Sie auf OK, um die Konfiguration zu speichern.
Sie können den Unterzeichner auch mit dem Befehl retrieveSignerFromPort vom Port abrufen. Weitere Informationen zu diesem Befehl finden Sie im Artikel zur Befehlsgruppe "SignerCertificateCommands" für das Objekt "AdminTask".
Browser für Clientauthentifizierung konfigurieren:
Wenn WebSphere Application Server für die Authentifizierung mit Clientzertifikat konfiguriert ist und versucht wird, mit einem Browser auf den Server zuzugreifen, benötigt der Browser ein Zertifikat für die Clientzertifikatauthentifizierung. Falls die SSL-Standardkonfiguration des Servers so modifiziert wurde, dass die Authentifizierung mit Clientzertifikat aktiviert ist, können Sie sich nicht bei der Administrationskonsole anmelden.
Sie können in der Administrationskonsole ein Zertifikat für den Browser erstellen. Zunächst müssen Sie einen Keystore und dann ein verkettetes Zertifikat erstellen. Verwenden Sie dann die Anweisungen für Ihren Browser, um das erstellte Zertifikat zu importieren. Browser können das Zertifikat nur verifizieren, wenn alle Teile der Kette hinzugefügt wurden. Dass Stammzertifikat muss daher extrahiert und zum Browser hinzugefügt werden. Der Abschnitt "Clientseite für Clientauthentifizierung konfigurieren" enthält Informationen zum Extrahieren des Stammzertifikats.
- Klicken Sie auf .
- Klicken Sie auf Neu.
- Geben Sie einen Namen für den Keystore ein.
- Geben Sie den vollständigen Pfad zur Keystore-Datei ein.
- Geben Sie ein Kennwort für den Keystore ein und bestätigen Sie es.
- Klicken Sie auf OK, um die Konfiguration zu speichern.
- Klicken Sie auf .
- Wählen Sie den zuvor erstellten Keystore aus.
- Klicken Sie unter "Weitere Eigenschaften" auf Persönliche Zertifikate.
- Wählen Sie in der Pull-down-Liste unter der Schaltfläche "Erstellen" Verkettetes Zertifikat aus.
- Geben Sie einen Aliasnamen für das Zertifikat ein.
- Geben Sie einen allgemeinen Namen für das Zertifikat an. Dieser Name ist der Abschnitt "CN=" des "Subject DN".
- In allen übrigen Feldern können Sie Daten für die Erstellung des "Subject DN" des verketteten Zertifikats eingeben.
- Klicken Sie auf OK, um die Konfiguration zu speichern.
Sie können auch den Befehl createKeyStore verwenden, um einen Keystore zu erstellen. Weitere Informationen zu diesem Befehl finden Sie im Artikel zur Befehlsgruppe "KeyStoreCommands" für das Objekt "AdminTask".
Zum Erstellen eines verketteten Zertifikats können Sie auch den Befehl createChainedCertificate verwenden. Weitere Informationen zu diesem Befehl finden Sie im Artikel zur Befehlsgruppe "PersonalCertificateCommands" für das Objekt "AdminTask".
Webzertifikatauthentifizierung
Die zertifikatbasierte Authentifizierung kann für J2EE-Webmodule durchgeführt werden, wenn diese für die Clientzertifikatsauthentifizierung konfiguriert sind. Ein Benutzer kann sich in dem Fall bei einem Webmodul anmelden und sich mit einem Zertifikat authentifizieren. Dieses Zertifikat wird einem Benutzer aus der Registry zugeordnet.
Wenn die Webzertifikatauthentifizierung aktiviert werden soll, muss in der SSL-Konfiguration des Servers, auf dem das Modul installiert ist, die Authentifizierung mit Clientzertifikat festgelegt sein.
Die Serverseite legt fest, dass die Clientauthentifizierung stattfinden soll. Informationen zum Konfigurieren der Clientauthentifizierung enthält der Abschnitt "WebSphere-Server für Clientauthentifizierung konfigurieren". Auf der Clientseite muss der Unterzeichner vom Server zum Client-Truststore hinzugefügt werden. Weitere Informationen hierzu enthält der Abschnitt "Clientseite für Clientauthentifizierung konfigurieren".
Im Abschnitt "login-config" der Datei web.xml des Webmoduls muss die Authentifizierungsmethode auf CLIENT-AUTH gesetzt sein.
<login-config>
<auth-method>CLIENT-CERT</auth-method>
</login-config>
Das Zertifikat muss einem Benutzer in der Registry zugeordnet werden, da Sie sich sonst nicht bei diesem Webmodul anmelden können.
Für die Benutzerregistry "localOS" muss der CN-Wert des "Subject DN" einem Benutzer in der Registry des lokalen Betriebssystems zugeordnet sein. Angenommen, der "Subject DN" des Zertifikats lautet CN=tester,o=ibm,c=us. In dem Fall ist tester der Benutzer, nach dem die lokale Benutzerregistry durchsucht wird. Wenn dieser Benutzer nicht in der lokalen Registry enthalten ist, schlägt die Authentifizierung fehl.
Die LDAP-Benutzerregistry bietet mehr Möglichkeiten der Zuordnung eines Zertifikats zu einer Benutzer-ID. Die LDAP-Standardmethode der Zertifikatzuordnung verwendet eine exakte Übereinstimmung des Eintrags in der LDAP-Registry mit dem "Subject DN" des Zertifikats. Angenommen der Zertifikat-DN lautet CN=user1,o=ibm,c=us. Die LDAP-Registry muss in dem Fall einen Eintrag mit genau diesem Wert enthalten. Die LDAP-Benutzerregistry bietet außerdem eine Zertifikatfilteroption an, um einen bestimmten Abschnitt des "Subject DN" des Zertifikats mit Einträgen in der LDAP-Repository abzugleichen. Weitere Informationen zur LDAP-Zertifikatzuordnung enthält der Abschnitt "Einstellungen für Konfiguration des LDAP-Repositorys".
In einer Konfiguration mit eingebundenen Repositorys wird die Anmeldung mit Clientzertifikaten für das dateibasierte Repository nicht unterstützt. Um die Unterstützung für die Zertifikatszuordnung im dateibasierten Repository zu aktivieren, folgen Sie der im Artikel mit dem Thema "Unterstützung für Anmeldung mit Clientzertifikaten in einem dateibasierten Repository im Rahmen einer Konfiguration für eingebundene Repositorys aktivieren" beschriebenen Prozedur.
Das eingebundene Repository mit LDAP-Registry unterstützt die Zuordnung von Zertifikaten. In dem Fall werden die Zuordnungsregeln und -eigenschaften der LDAP-Benutzerregistry verwendet.
Eine angepasste Benutzerregistry kann Zertifikate einem Benutzer zuordnen, wenn die Registry die Methode mapCertificate() implementiert.