IIS ARR ReverseProxy com autenticação de certificado de cliente para backend IIS

IIS ARR ReverseProxy com autenticação de certificado de cliente para backend IIS

Temos serviços da Web SOAP legados ( https://dev-ms01/Services/default.asmx) que são escritos em asp.net 1.1 hospedados no IIS7 (padrão win server 2008), serviços da web consumidos pelos clientes, fornecendo certificado de cliente. Para as SSL Certificatesconfigurações que temos Acceptneste IIS

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

Agora estou tentando configurar o proxy IIS (IIS10 no servidor win 2016 host de 64 bits secure-dev-ms01) com revere proxy para o IIS7. Eu segui o artigo do msdnhttps://blogs.msdn.microsoft.com/friis/2016/08/25/setup-iis-with-url-rewrite-as-a-reverse-proxy-for-real-world-apps/para configurar a reescrita de URL com ReverseProxy conforme abaixo

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

No IIS10(host secure-dev-ms01) para as SSL Certificatesconfigurações que escolhi Accepte tentei a configuração ReverseProxy abaixoinsira a descrição da imagem aqui. Quando estou tentando navegar no URL dos serviços da Web do proxy, https://secure-dev-ms01/Services/default.asmxele solicita o certificado do cliente, mas depois de fornecer o certificado do cliente, vejo o erro abaixo

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

Eu tentei usar abaixo RevereProxytambéminsira a descrição da imagem aquie tentei navegar no URL dos serviços da Web do proxy https://secure-dev-ms01/Services/default.asmxe fornecer o certificado do cliente, mas ainda estou vendo o erro abaixo. Também tentei desmarcar a opção Enable SSL Offloadingpara ambas as configurações RevereseProxy acima, mas também não funcionou

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

Encontrei este artigo do MSDNhttps://blogs.msdn.microsoft.com/asiatech/2014/01/27/configurando-arr-with-client-certificate/que sugere alterar SSL Certificatesas configurações Ignoreno servidor backend (mas não podemos adotar isso para nossa organização) e tentar usar o certificado dos cabeçalhos, X-ARR-ClientCertmas estamos tentando evitar fazer quaisquer alterações de código nos serviços legados do asp.net 1.1

Não consegui encontrar nenhum artigo relevante que pudesse fazer o IIS ARR ReverseProxy com autenticação de certificado de cliente funcionar para backend IIS com apenas ajustes de configuração no IIS10 com ReverseProxy em vez de alteração de código/configuração no backend IIS7, alguém pode me ajudar a fazer isso funcionar?

Responder1

Presumo que você tenha IIS7 (on host dev-ms01)uma máquina em uma rede segura, sem acesso direto da Internet.

Nesse caso, você precisa ativar o descarregamento de SSL e a autenticação de certificado de cliente emProxy IIS10 Server with ReverseProxy (on host secure-dev-ms01) apenase desative o descarregamento de SSL e a autenticação de certificado no IIS7.

Neste esquema, o IIS10 é responsável pelo handshake SSL e validação do certificado. Ele coloca o certificado (POM) em X-ARR-ClientCertsolicitações de cabeçalho e proxy para IIS7 via HTTP simples, incluindo este cabeçalho. Provavelmente você precisará configurar o desvio de , X-Forwarded-Fore cabeçalhos no IIS10, na regra de reescrita de URL, se seus serviços ASP tiverem alguma utilidade para eles.X-Forwarded-ProtoX-Forwarded-SchemaX-Forwarded-Host

Então, para o seu servidor IIS10:

  • ativar ARR
  • adicione uma regra de reescrita de URL para passagem de proxy para IIS7
  • configurar o desvio dos cabeçalhos acima na regra de reescrita
  • adicionar um certificado de servidor
  • exigir SSL nas configurações de SSL do site padrão
  • defina a configuração de certificados de cliente igual a Aceitar
  • habilitar autenticação anônima para seu site
  • configurar ligações https com o certificado do servidor

Para o servidor IIS7:

  • desabilitar ligações HTTPS
  • não requer SSL
  • não exigem certificados de cliente

Esperançosamente, você fará o próximo esquema funcionar

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

onde headersestão X-ARR-ClientCert, X-Forwarded-For, X-Forwarded-Proto, X-Forwarded-Schema e X-Forwarded-Host.

informação relacionada