IIS ARR ReverseProxy mit Client-Zertifikatauthentifizierung für Back-End-IIS

IIS ARR ReverseProxy mit Client-Zertifikatauthentifizierung für Back-End-IIS

Wir haben veraltete SOAP-Webdienste ( https://dev-ms01/Services/default.asmx), die in asp.net 1.1 geschrieben sind und auf IIS7 (Win Server 2008 Standard) gehostet werden. Diese Webdienste werden von Clients genutzt, indem Client-Zertifikate bereitgestellt werden. Für die Einstellungen, die wir auf diesem IIS SSL Certificateshaben ,Accept

`Client(Request with SSL Client Certificate)--> IIS7 (on host dev-ms01)--> Asp.Net SOAP WebServices`

secure-dev-ms01Jetzt versuche ich, Proxy-IIS (IIS10 auf Win Server 2016 64-Bit-Host ) mit Revere-Proxy für IIS7 einzurichten . Ich bin dem MSDN-Artikel gefolgthttps://blogs.msdn.microsoft.com/friis/2016/08/25/setup-iis-with-url-rewrite-as-a-reverse-proxy-for-real-world-apps/um das URL-Rewrite mit ReverseProxy wie unten beschrieben zu konfigurieren

`Client(Request with SSL Client Certificate)--> Proxy IIS10 Server with ReverseProxy (on host secure-dev-ms01)--> IIS7 (on host dev-ms01) --> Asp.Net SOAP WebServices`

Auf dem IIS10(Host secure-dev-ms01) für die SSL CertificatesEinstellungen, die ich gewählt habe Accept, und ich habe die folgende ReverseProxy-Konfiguration ausprobiertBildbeschreibung hier eingeben. Wenn ich versuche, die URL der Proxy-Webdienste zu durchsuchen, wird nach https://secure-dev-ms01/Services/default.asmxdem Client-Zertifikat gefragt, aber nachdem ich das Client-Zertifikat bereitgestellt habe, wird der folgende Fehler angezeigt

403 - Forbidden: Access is denied.
You do not have permission to view this directory or page using the credentials that you supplied.

Ich habe RevereProxyauch versucht, unten zu verwendenBildbeschreibung hier eingebenund habe versucht, die URL des Proxy-Webdienstes zu durchsuchen https://secure-dev-ms01/Services/default.asmxund das Client-Zertifikat bereitzustellen, aber ich sehe immer noch den folgenden Fehler. Ich habe auch versucht, die Option Enable SSL Offloadingfür beide der oben genannten RevereseProxy-Konfigurationen zu deaktivieren, aber das hat auch nicht funktioniert

403 - Forbidden: Access is denied.
You do not have permission to view this directory or page using the credentials that you supplied.

Ich habe diesen MSDN-Artikel gefundenhttps://blogs.msdn.microsoft.com/asiatech/2014/01/27/configuring-arr-with-client-certificate/Dies schlägt vor, SSL Certificatesdie Einstellungen Ignoreauf dem Backend-Server zu ändern (was wir jedoch nicht für unsere Organisation übernehmen können) und zu versuchen, das Zertifikat aus den Headern zu verwenden. X-ARR-ClientCertWir versuchen jedoch, Codeänderungen an den älteren asp.net 1.1-Diensten zu vermeiden.

Ich konnte keine relevanten Artikel finden, die dazu führen könnten, dass IIS ARR ReverseProxy mit Client-Zertifikatauthentifizierung für das IIS-Backend funktioniert, und zwar nur durch Konfigurationsoptimierungen am IIS10 mit ReverseProxy statt durch Code-/Konfigurationsänderungen am IIS7-Backend. Kann mir bitte jemand dabei helfen, dass das funktioniert?

Antwort1

Ich gehe davon aus, dass Ihr IIS7 (on host dev-ms01)Computer sich in einem sicheren Netzwerk befindet und keinen direkten Zugriff vom Internet hat.

In diesem Fall müssen Sie SSL-Offloading und Client-Zertifikatauthentifizierung aktivieren aufProxy IIS10 Server with ReverseProxy (on host secure-dev-ms01) nurund deaktivieren Sie SSL-Offloading und Zertifikatauthentifizierung in IIS7.

In diesem Schema ist IIS10 für den SSL-Handshake und die Zertifikatsüberprüfung verantwortlich. Es platziert das Zertifikat (POM) im X-ARR-ClientCertHeader und leitet Anfragen mit diesem Header über einfaches HTTP an IIS7 weiter. Wahrscheinlich müssen Sie in der URL-Umschreibregel das Umgehen der Header X-Forwarded-For, X-Forwarded-Proto, X-Forwarded-Schemaund X-Forwarded-Hostauf IIS10 einrichten, wenn Ihre ASP-Dienste sie verwenden.

Also für Ihren IIS10-Server:

  • ARR aktivieren
  • Fügen Sie eine Regel zum Umschreiben der URL zur Proxy-Weiterleitung an IIS7 hinzu
  • Einrichten einer Umgehung der obigen Header in der Umschreibregel
  • Fügen Sie ein Serverzertifikat hinzu
  • SSL in den SSL-Einstellungen der Standard-Website erforderlich machen
  • Setzen Sie die Einstellung für Client-Zertifikate auf Akzeptieren
  • Aktivieren Sie die anonyme Authentifizierung für Ihre Site
  • Einrichten von https-Bindungen mit dem Serverzertifikat

Für den IIS7-Server:

  • HTTPS-Bindungen deaktivieren
  • erfordern kein SSL
  • erfordern keine Client-Zertifikate

Hoffentlich funktioniert das nächste Schema

Browser ---[HTTPS]---> IIS10 --[HTTP + headers]--> IIS7

wo headerssind X-ARR-ClientCert, X-Forwarded-For, X-Forwarded-Proto, X-Forwarded-Schema und X-Forwarded-Host.

verwandte Informationen