
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 Certificates
Accept
. 클라이언트 인증서를 묻는 메시지가 표시 될 때 프록시 웹 서비스 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-Schema
X-Forwarded-Host
따라서 IIS10 서버의 경우:
- ARR 활성화
- IIS7에 프록시 전달을 위한 재작성 URL 규칙 추가
- 다시 쓰기 규칙에서 위의 헤더를 우회하도록 설정
- 서버 인증서 추가
- 기본 웹 사이트의 SSL 설정에 SSL이 필요합니다.
- 클라이언트 인증서 설정을 Accept로 설정합니다.
- 귀하의 사이트에 대해 익명 인증을 활성화하십시오
- 서버 인증서로 https 바인딩 설정
IIS7 서버의 경우:
- HTTPS 바인딩 비활성화
- SSL이 필요하지 않습니다
- 클라이언트 인증서가 필요하지 않습니다
바라건대, 다음 계획이 성공할 수 있기를 바랍니다.
Browser ---[HTTPS]---> IIS10 --[HTTP + headers]--> IIS7
headers
X-ARR-ClientCert, X-Forwarded-For, X-Forwarded-Proto, X-Forwarded-Schema 및 X-Forwarded-Host는 어디에 있습니까?