우리 사이트를 방문할 때 최종 사용자에게 강제로 HTTPS를 사용하려고 합니다. IIS의 사이트 및 응용 프로그램 수준에서 HSTS를 활성화했습니다. 사이트 수준에서 HTTP 리디렉션을 https://ourdomain.com
. 우리 사이트의 홈 페이지를 방문하여 헤더를 볼 수 있지만 에서 Strict-Transport-Security: max-age: XXXX; includeSubDomains
로 리디렉션되지 않습니다 .http://internal-hostname/
https://ourdomain.com
나는 읽었다IIS 10.0 버전 1709 HSTS(HTTP 엄격한 전송 보안) 지원, 그리고 나는 단계를 올바르게 따랐다고 믿습니다. HSTS를 활성화한 후 HTTP에서 HTTPS로 자동 리디렉션될 것으로 예상했습니다. 나도 읽었어IIS에서 모든 HTTP를 HTTPS로 리디렉션하는 가장 좋은 방법, 그러나 그 질문은 IIS7에 중점을 두었습니다. HSTS 지원과 관련하여 그 이후로 많은 변화가 있었지만 자동 리디렉션에 대한 나의 기대가 틀렸을 수도 있습니다.
시스템 정보:
- 윈도우 서버 2019(버전 1809)
- IIS 10.0.17763.1
제가 한:
IIS 구성 관리자를 열었습니다.
"기본 웹 사이트"를 마우스 오른쪽 버튼으로 클릭하고 "웹 사이트 관리"를 선택한 다음 "고급 설정"을 클릭합니다.
다음 설정을 사용하여 HSTS를 활성화했습니다.
- 활성화됨: 참
- includeSubDomains: 참
- 최대 연령: 31536000
- 예압: 거짓
- HTTP를 HTTPS로 리디렉션
"확인"을 클릭했습니다.
"기본 웹 사이트"를 클릭하고 "IIS" 섹션에서 "HTTP 리디렉션"을 선택했습니다.
"요청을 이 대상으로 리디렉션"을 선택하고 HTTPS URL(이 특정 웹 서버가 아닌 로드 밸런서임)을 입력했습니다.
IIS를 다시 시작했습니다.
웹 서버에 대한 원격 데스크톱 세션을 사용하는 동안 Microsoft Edge를 열었습니다.
http://internal-hostname/
엣지에 다녀왔습니다 .
예상되는 동작:사용자는 로 리디렉션됩니다 https://ourdomain.com
.
실제 동작:브라우저가 "403.4 Forbidden" 오류 페이지를 로드했습니다.
응답에서 예상되는 HTTP 헤더를 받고 있기 때문에 HSTS가 활성화된 것 같습니다. 그러나 다음에 지정된 대로 HTTP에서 HTTPS 1Strict-Transport-Security
로 원하는 리디렉션을 얻지 못하고 있습니다.RFC 6797.
1 좋은 대답은 "HSTS"가 IIS 10의 설익은 솔루션이므로 실제로 HTTP 리디렉션 규칙을 추가해야 한다는 것입니다.