IIS ARR ReverseProxy con autenticación de certificado de cliente para IIS backend

IIS ARR ReverseProxy con autenticación de certificado de cliente para IIS backend

Tenemos servicios web SOAP heredados ( https://dev-ms01/Services/default.asmx) que están escritos en asp.net 1.1 alojado en IIS7 (estándar win server 2008), servicios web consumidos por los clientes al proporcionar un certificado de cliente. Para la SSL Certificatesconfiguración que tenemos Accepten este IIS

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

Ahora estoy intentando configurar el proxy IIS (IIS10 en el host de 64 bits del servidor Win 2016 secure-dev-ms01) con un proxy reverenciado para IIS7. He seguido el artículo de msdn.https://blogs.msdn.microsoft.com/friis/2016/08/25/setup-iis-with-url-rewrite-as-a-reverse-proxy-for-real-world-apps/para configurar la reescritura de URL con ReverseProxy como se muestra a continuación

`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`

En IIS10(host secure-dev-ms01) para la SSL Certificatesconfiguración que elegí Accepty probé la siguiente configuración de ReverseProxyingrese la descripción de la imagen aquí. Cuando intento navegar por la URL de los servicios web proxy, https://secure-dev-ms01/Services/default.asmxaparece el certificado de cliente, pero después de proporcionar el certificado de cliente veo el siguiente error

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

Intenté usar a continuación RevereProxytambiéningrese la descripción de la imagen aquíIntenté navegar por la URL de los servicios web proxy https://secure-dev-ms01/Services/default.asmxy proporcioné el certificado del cliente, pero sigo viendo el siguiente error. También intenté desmarcar la opción Enable SSL Offloadingpara las dos configuraciones anteriores de RevereseProxy, pero tampoco funcionó.

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

Encontré este artículo de msdnhttps://blogs.msdn.microsoft.com/asiatech/2014/01/27/configuring-arr-with-client-certificate/lo que sugiere cambiar SSL Certificatesla configuración en Ignoreel servidor backend (pero no podemos adoptar esto para nuestra organización) e intentar usar el certificado de los encabezados, X-ARR-ClientCertpero estamos tratando de evitar realizar cambios de código en los servicios heredados de asp.net 1.1.

No pude encontrar ningún artículo relevante que pudiera hacer que IIS ARR ReverseProxy con autenticación de certificado de cliente funcione para IIS backend con solo ajustes de configuración en IIS10 con ReverseProxy en lugar de cambios de código/configuración en el backend IIS7, ¿alguien puede ayudarme a hacer que esto funcione?

Respuesta1

Supongo que tiene IIS7 (on host dev-ms01)la máquina en una red segura sin acceso directo desde Internet.

En este caso, debe habilitar la descarga de SSL y la autenticación del certificado de cliente enProxy IIS10 Server with ReverseProxy (on host secure-dev-ms01) soloy deshabilite la descarga de SSL y la autenticación de certificados en IIS7.

En este esquema, IIS10 es responsable del protocolo de enlace SSL y la validación del certificado. Coloca el certificado (POM) en X-ARR-ClientCertel encabezado y pasa las solicitudes de proxy a IIS7 a través de HTTP simple, incluido este encabezado. Probablemente necesite configurar la omisión de , X-Forwarded-Fory encabezados en IIS10, en la regla de reescritura de URL, si sus servicios ASP tienen algún uso para ellos.X-Forwarded-ProtoX-Forwarded-SchemaX-Forwarded-Host

Entonces, para su servidor IIS10:

  • habilitar ARR
  • agregue una regla de reescritura de URL para pasar el proxy a IIS7
  • configurar la omisión de los encabezados anteriores en la regla de reescritura
  • agregar un certificado de servidor
  • Requerir SSL en la configuración SSL del sitio web predeterminado.
  • establecer la configuración de certificados de cliente igual a Aceptar
  • habilite la autenticación anónima para su sitio
  • configurar enlaces https con el certificado del servidor

Para el servidor IIS7:

  • deshabilitar enlaces HTTPS
  • no requiere SSL
  • no requiere certificados de cliente

Con suerte, conseguirás que el siguiente esquema funcione.

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

donde headersestán X-ARR-ClientCert, X-Forwarded-For, X-Forwarded-Proto, X-Forwarded-Schema y X-Forwarded-Host.

información relacionada