백엔드 IIS용 클라이언트 인증서 인증을 사용하는 IIS ARR ReverseProxy

백엔드 IIS용 클라이언트 인증서 인증을 사용하는 IIS ARR ReverseProxy

https://dev-ms01/Services/default.asmx우리는 IIS7(win server 2008 표준)에서 호스팅되는 asp.net 1.1로 작성된 레거시 SOAP 웹 서비스( ), 클라이언트 인증서를 제공하여 클라이언트가 사용하는 웹 서비스를 보유하고 있습니다 . 이 IIS에 대한 SSL Certificates설정 의 경우Accept

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

secure-dev-ms01이제 IIS7에 대한 Revere 프록시를 사용하여 프록시 IIS(Win 서버 2016 64비트 호스트의 IIS10)를 설정하려고 합니다 . 나는 msdn 기사를 따랐다https://blogs.msdn.microsoft.com/friis/2016/08/25/setup-iis-with-url-rewrite-as-a-reverse-proxy-for-real-world-apps/아래와 같이 ReverseProxy로 URL 재작성을 구성하려면

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

내가 선택한 설정 에 대해 IIS10(호스트 secure-dev-ms01) 에서 아래 ReverseProxy 구성을 시도했습니다.SSL CertificatesAccept여기에 이미지 설명을 입력하세요. 클라이언트 인증서를 묻는 메시지가 표시 될 때 프록시 웹 서비스 URL을 탐색하려고 하는데 https://secure-dev-ms01/Services/default.asmx클라이언트 인증서를 제공한 후 아래 오류가 표시됩니다.

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

RevereProxy아래 에서도 사용해봤는데여기에 이미지 설명을 입력하세요프록시 웹 서비스 URL을 찾아보고 https://secure-dev-ms01/Services/default.asmx클라이언트 인증서를 제공했지만 여전히 아래 오류가 표시됩니다. 또한 Enable SSL Offloading위의 RevereseProxy 구성 모두에 대한 옵션을 선택 취소하려고 시도했지만 둘 중 하나도 작동하지 않았습니다.

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

이 msdn 기사를 찾았습니다.https://blogs.msdn.microsoft.com/asiatech/2014/01/27/configuring-arr-with-client-certificate/이는 백엔드 서버에서 SSL Certificates설정을 변경하도록 제안하고 Ignore(그러나 우리 조직에서는 이를 채택할 수 없음) 헤더의 인증서를 사용해 보지만 X-ARR-ClientCert레거시 asp.net 1.1 서비스에 대한 코드 변경을 피하려고 노력하고 있습니다.

백엔드 IIS7의 코드/구성 변경 대신 ReverseProxy를 사용하는 IIS10의 구성 조정만으로 백엔드 IIS에 대해 클라이언트 인증서 인증을 사용하는 IIS ARR ReverseProxy를 사용할 수 있는 관련 기사를 찾을 수 없습니다. 누군가 이 작업을 수행하도록 도와줄 수 있습니까?

답변1

IIS7 (on host dev-ms01)인터넷에서 직접 액세스할 수 없는 보안 네트워크에 컴퓨터 가 있다고 가정합니다 .

이 경우 SSL 오프로딩 및 클라이언트 인증서 인증을 활성화해야 합니다.Proxy IIS10 Server with ReverseProxy (on host secure-dev-ms01) 오직IIS7에서 SSL 오프로딩 및 인증서 인증을 비활성화합니다.

이 체계에서 IIS10은 SSL 핸드셰이크와 인증서 유효성 검사를 담당합니다. 인증서(POM)를 X-ARR-ClientCert헤더에 배치하고 이 헤더를 포함하는 일반 HTTP를 통해 IIS7에 요청을 프록시 전달합니다. ASP 서비스에서 해당 헤더를 사용하는 경우 URL 재작성 규칙에서 IIS10의 , 및 헤더 우회를 X-Forwarded-For설정 해야 X-Forwarded-Proto할 수 있습니다 .X-Forwarded-SchemaX-Forwarded-Host

따라서 IIS10 서버의 경우:

  • ARR 활성화
  • IIS7에 프록시 전달을 위한 재작성 URL 규칙 추가
  • 다시 쓰기 규칙에서 위의 헤더를 우회하도록 설정
  • 서버 인증서 추가
  • 기본 웹 사이트의 SSL 설정에 SSL이 필요합니다.
  • 클라이언트 인증서 설정을 Accept로 설정합니다.
  • 귀하의 사이트에 대해 익명 인증을 활성화하십시오
  • 서버 인증서로 https 바인딩 설정

IIS7 서버의 경우:

  • HTTPS 바인딩 비활성화
  • SSL이 필요하지 않습니다
  • 클라이언트 인증서가 필요하지 않습니다

바라건대, 다음 계획이 성공할 수 있기를 바랍니다.

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

headersX-ARR-ClientCert, X-Forwarded-For, X-Forwarded-Proto, X-Forwarded-Schema 및 X-Forwarded-Host는 어디에 있습니까?

관련 정보