
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 Certificates
configurações que temos Accept
neste 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 Certificates
configurações que escolhi Accept
e tentei a configuração ReverseProxy abaixo. Quando estou tentando navegar no URL dos serviços da Web do proxy,
https://secure-dev-ms01/Services/default.asmx
ele 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 RevereProxy
tambéme tentei navegar no URL dos serviços da Web do proxy
https://secure-dev-ms01/Services/default.asmx
e fornecer o certificado do cliente, mas ainda estou vendo o erro abaixo. Também tentei desmarcar a opção Enable SSL Offloading
para 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 Certificates
as configurações Ignore
no servidor backend (mas não podemos adotar isso para nossa organização) e tentar usar o certificado dos cabeçalhos, X-ARR-ClientCert
mas 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-ClientCert
solicitações de cabeçalho e proxy para IIS7 via HTTP simples, incluindo este cabeçalho. Provavelmente você precisará configurar o desvio de , X-Forwarded-For
e cabeçalhos no IIS10, na regra de reescrita de URL, se seus serviços ASP tiverem alguma utilidade para eles.X-Forwarded-Proto
X-Forwarded-Schema
X-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 headers
estão X-ARR-ClientCert, X-Forwarded-For, X-Forwarded-Proto, X-Forwarded-Schema e X-Forwarded-Host.