!--a11y-->
X.509-basierte Anmeldung am NW AS über den SAP
Web Dispatcher 
Bei End-to-End SSL
terminiert der SAP Web Dispatcher den SSL-Datenstrom nicht. Das
Clientzertifikat wird (nach der SSL-Terminierung) im ICM des
Applikationsservers extrahiert und über
Memory Pipes zum
Workprozess transportiert. Dort kann das Clientzertifikat des Benutzers zur
Anmeldung benutzt werden.
Wenn der SAP Web Dispatcher jedoch SSL terminiert, liegt das (öffentliche) Zertifikat des Benutzers nun im Web Dispatcher entpackt vor und muss nun gesichert zum Applikationsserver (AS ABAP oder AS Java) gelangen. Man benötigt zur Zertifikatsweiterleitung eine Vertrauensbeziehung zwischen Applikationsserver und Web Dispatcher. Dies kann über eine SSL-verschlüsselte Verbindung zwischen Web Dispatcher und Applikationsserver gehen (vgl. Metadatenaustausch über SSL einrichten).
Die Werte des Benutzer-Zertifikates werden in HTTP-Headerfeldern übertragen.
Name des Headerfeldes |
Wert |
Format |
SSL_CLIENT_CERT |
Client-Zertifikat |
Base64-kodierte Daten, eine Zeile |
SSL_CLIENT_CERT_CHAIN_1 |
Erstes Nicht-Wurzel-CA-Zertifikat der CA, die das Client-Zertifikat ausstellte |
gleich wie SSL_CLIENT_CERT |
SSL_CLIENT_CERT_CHAIN_n |
Letztes Nicht-Wurzel-CA-Zertifikat |
gleich wie SSL_CLIENT_CERT |
SSL_CLIENT_CERT_CHAIN_n+1 |
Dieses Element wäre das entsprechende Wurzelzertifikat. Es darf nicht zum Server übertragen werden. |
gleich wie SSL_CLIENT_CERT |
SSL_CIPHER_USEKEYSIZE |
Anzahl der tatsächlich verwendeten Verschlüsselungsbits |
Numerischer Dezimalwert, der als Zeichenkette übertragen wird (z.B. 0, 40, 56, 128, 168) |
SSL_CIPHER_SUITE
|
Cipher-Suite gemäß Definition in der SSL- und TLS-Spezifikation (draft-freier-ssl-version3-02 bzw. RFC 2246) |
Die Cipher-Suite besteht aus zwei (SSL 3.0 / TLS) oder drei (SSL 2.0) numerischen 8-Bit-Werten. |
Die Vertrauensbeziehung zwischen SAP Web Dispatcher und ICM wird mit Hilfe eines Client-Zertifikates, das der Web Dispatcher für die SSL-Verbindung benutzt, aufgebaut. Dieses Web Dispatcher Zertifikat benutzt der ICM, um zu entscheiden, ob der Vorgänger (intermediate) vertrauenswürdig ist oder nicht.
Im Profil des SAP Web Dispatcher müssen Sie Parameter setzen, um SSL zu terminieren (vgl. SAP Web Dispatcher und SSL):
· icm/server_port_<xx> = ... PROT=HTTPS,...
· SSL-Parameter, siehe SAP Web Dispatcher für die Unterstützung von SSL konfigurieren.
Folgende Parameter müssen Sie außerdem setzen, um den Request wieder mit SSL zu verschlüsseln:
wdisp/ssl_encrypt=<0,1,2>
wdisp/ssl_auth=<0,1,2>
wdisp/ssl_cred=<File_name_of_client_PSE>
wdisp/ssl_host=<Common_host_name>
Mit der Datei <File_name_of_client_PSE> wird das Clientzertifikat des Web Dispatchers angegeben. Mit diesem wird das Vertrauensverhältnis zum ICM des Applikationsservers aufgebaut.
Details zu den Parametern finden Sie unter SSL-Parameter.
Setzen Sie folgenden Parameter, um das Benutzerzertifikat in die Headerfelder zu übertragen
icm/HTTPS/forward_ccert_as_header = true
Im Profil des ICM müssen folgende Parameter gesetzt sein, um den vertrauenswürdigen Vorgänger (trusted intermediate) zu spezifizieren:
icm/HTTPS/trust_client_with_issuer = <issuer>
icm/HTTPS/trust_client_with_subject = <subject>
Stimmen <subject> und <issuer> des Web Dispatcher-Clientzertifikates mit diesen Werten überein, akzeptiert der ICM die SSL-Headerfelder, ansonsten löscht er sie.
Wenn die SSL-Headerfelder nicht gesetzt sind, der HTTPS-Request jedoch ein eigenes Zertifikat mitbringt, wird dieses zur Anmeldung am Applikationsserver benutzt (direkte Verbindung vom Browser zum Applikationsserver).
Syntax
Der Parameter muss die gesamte Zeichenkette des Zertifikats enthalten. Falls also das Zertifikat den Issuer CN = SAP CA, O = SAP CA INT, C = DE und das subject CN = sapwebdisp, O = SAP-AG, C = DE enthält, müssen die Parameter genau so gesetzt werden.
Dabei muss jedes Zeichen übereinstimmen, auch Leerzeichen.
Um die Konfiguration zu vereinfachen, können Wildcards angegeben werden: *, ?, wobei der Asterisk * für beliebig viele und das ? für ein Zeichen steht.

icm/HTTPS/trust_client_with_issuer = CN = SAP CA,* .
icm/HTTPS/trust_client_with_subject = CN = sapwebdisp,* .
Ein Spezialfall ist die Angabe von
icm/HTTPS/trust_client_with_issuer = *
icm/HTTPS/trust_client_with_subject = *
Damit wird jedes Client Zertifikat akzeptiert; es wird sogar akzeptiert, wenn der Client gar kein X.509 Zertifikat schickt.

Damit ist keine Vertrauensbeziehung zwischen ICM und Web Dispatcher (oder anderem Loadbalancer) mehr gegeben! Die Sicherheit muss dann mit Netzwerkmitteln hergestellt werden.
Folgende Aktionen sollen die Sicherheit bei der Zertifikatsweiterleitung gewährleisten:
● Bei eingehenden HTTP-Requests werden evtl. gesetzte SSL-Headerfelder gelöscht
● Ist der Vorgänger nicht vertrauenswürdig, werden eventuell gesetzte SSL-Headerfelder gelöscht.
Sie können mehrere SAP Web Dispatcher (intermediates) hintereinander schalten. Dann muss jeder Knoten, der die SSL-Headerfelder akzeptieren soll, seinem direkten Vorgänger vertrauen. Dies können Sie über die Parameter icm/HTTPS/trust_client_with_subject und icm/HTTPS/trust_client_with_subject auch beim Web Dispatcher steuern (s.o.).
Informationen zur Kaskadierung von Web Dispatchern finden Sie in SAP-Hinweis 740234.