Steuerung von X.509-Zertifikatidentitäten mit einem Key Manager
Der JSSE-Key-Manager (Java™ Secure Socket Extension) empfängt das Zertifikat, mit dem der Client oder Server bei einem SSL-Handshake identifiziert wird.
- com.ibm.ssl.keyStoreClientAlias
- Definiert den Aliasnamen, der für die Clientseite der Verbindung aus dem Keystore ausgewählt wird. Dieser Aliasname muss im Keystore enthalten sein.
- com.ibm.ssl.keyStoreServerAlias
- Definiert den Aliasnamen, der für die Serverseite der Verbindung aus dem Keystore ausgewählt wird. Dieser Aliasname muss im Keystore enthalten sein.
Wenn Sie mit WebSphere Application Server arbeiten, können Sie für eine bestimmte SSL-Konfiguration immer nur jeweils einen Key Manager konfigurieren. Falls Sie die Logik für Zertifikatauswahl auf der Clientseite anpassen möchten, müssen Sie einen neuen eigenen Key Manager schreiben. Ein solcher angepasster Key Manager könnte eine Funktion bereitstellen, die den Benutzer dynamisch zur Auswahl eines Zertifikats auffordert. Sie können auch eine erweiterte Schnittstelle implementieren, sodass ein Key Manager während der Verbindungszeit Informationen bereitstellen kann. Weitere Informationen zur erweiterten Schnittstelle finden Sie in der Schnittstelle "com.ibm.wsspi.ssl.KeyManagerExtendedInfo". Weitere Informationen zur Entwicklung angepasster Key-Manager finden Sie unter Angepasste Key-Manager für SSL erstellen.
IbmX509-Standard-Key-Manager
Der IbmX509-Standard-Key-Manager wählt ein Zertifikat als Identität für einen SSL-Handshake aus. Der Key Manager wird aufgerufen, um die Clientauthentifizierung für einen der beiden Teilnehmer des SSL-Handshake zu aktivieren. Die Clientauthentifizierung wird häufig auf der Serverseite aktiviert, weniger häufig auf der Clientseite. Dies richtet sich nach den Client- und Serveranforderungen. Wenn auf der Clientseite kein Keystore konfiguriert und die SSL-Clientauthentifizierung aktiviert ist, kann der Key Manager kein Zertifikat auswählen und an den Server senden. Der Handshake muss demzufolge scheitern.
<keyManagers xmi:id="KeyManager_1" name="IbmX509"
provider="IBMJSSE2" algorithm="IbmX509" keyManagerClass=""
managementScope="ManagementScope_1"/>
Die Klasse keyManagerClass
wird nicht angegeben, weil der Key Manager vom Provider IBMJSSE2 bereitgestellt wird. Sie können jedoch angeben,
ob der Key Manager eine eigene Klassenimplementierung ist. In diesem
Fall müssen Sie die Klasse
keyManager oder den Namen eines Algorithmus angeben, den
WebSphere Application Server
vom Java-Sicherheitsprovider-Framework starten kann.Eigener Key Manager
Der folgende Beispielcode zeigt die Key-Manager-Konfiguration für eine angepasste Klasse in der Datei security.xml.<keyManagers xmi:id="KeyManager_2" name="CustomKeyManager"
keyManagerClass="com.ibm.ws.ssl.core.CustomKeyManager"
managementScope="ManagementScope_1"/>
Die angepasste Klasse muss die Schnittstelle
"javax.net.ssl.X509KeyManager" und optional die Schnittstelle
"com.ibm.wsspi.ssl.KeyManagerExtendedInfo" implementieren, um zusätzliche Informationen von
WebSphere Application Server abzurufen. Diese Schnittstelle ersetzt die Funktion des Standard-Key-Managers, denn Sie können nur jeweils einen Key Manager
konfigurieren.
Die Auswahl des zu verwendenden Aliasnamens aus dem konfigurierten Keystore fällt somit allein in die Zuständigkeit des
angepassten Key Managers. Der Vorteil eines eigenen Key Managers ist, dass auf der Clientseite die Eingabe eines Aliasnamens angefordert werden kann.
Wenn der Benutzer die Identität
des Clientzertifikats kennt,
kann er entscheiden, welches Zertifikat er verwenden möchte. Weitere Informationen finden Sie unter
Angepasste Key-Manager für SSL erstellen.