다음을 통해 공유


Exchange Server HTTP HSTS(Strict Transport Security) 구성

적용 대상:예-img-162016 yes-img-192019 yes-img-seSubscription Edition

개요

HSTS(HTTP Strict Transport Security)는 브라우저가 항상 HTTPS 연결을 사용하여 연결되도록 하여 웹 사이트 방문자를 보호하는 데 도움이 되는 널리 지원되는 표준 입니다. HSTS는 서버에서 STS(라는 Strict-Transport-Security 브라우저)로 특수 HTTP 응답 헤더를 전송하여 작동합니다. 이 헤더에는 브라우저에서 HTTPS를 사용하여 사이트에만 액세스할 수 있음을 기억해야 하는 시간 길이(초)를 지정하는 지시문이 포함되어 max-age 있습니다. 브라우저가 이 헤더를 수신하면 사이트에 액세스하기 위한 모든 HTTP 요청을 HTTPS 요청으로 자동으로 변경합니다.

HSTS는 일반적인 공격 시나리오에 대한 보호를 추가하는 것이 아니라 HTTP URL에서 HTTPS URL로 사용자를 리디렉션하는 일반적인(그리고 지금은 안전하지 않은) 관행의 필요성을 제거하는 데 도움이 됩니다. HSTS를 사용하여 활성 및 수동 네트워크 공격을 해결할 수도 있습니다. 그러나 HSTS는 맬웨어, 피싱 또는 브라우저 취약성을 해결하지 않습니다.

HSTS 작동 방식

브라우저는 HTTPS 연결을 통해 헤더를 Strict-Transport-Security 수신할 때 HSTS를 적용하도록 지시되지만 브라우저에서 HSTS를 적용하기 전에 충족해야 하는 몇 가지 요구 사항이 있습니다. 특히 세션을 암호화하는 데 사용되는 인증서는 다음과 같습니다.

  • 클라이언트에서 유효하고 신뢰할 수 있어야 합니다.
  • 만료되지 않아야 합니다. 그리고
  • 브라우저에서 호출된 도메인 또는 하위 도메인을 포함해야 합니다.

보다 일반적인 권장 사항은 Microsoft Edge를 사용하여 웹 보안 검색 을 참조하세요.

브라우저에서 도메인이 HSTS를 사용하도록 설정했음을 알게 되면 다음을 수행합니다.

  • 프로토콜을 https:// 지정하지 않고 링크를 클릭하거나 주소 표시줄에 http:// URL을 입력한 후를 포함하여 항상 연결을 사용합니다.
  • 사용자가 경고를 클릭할 수 있는 기능을 제거합니다(예: 만료되었거나 잘못된 인증서, 이름 불일치 등).

일부 시나리오(예: 사용자에게 새 컴퓨터, 새 프로필, 새 브라우저가 있거나 브라우저 데이터 및 설정을 지웠다)가 있습니다. 사용자가 HSTS를 적용하지 않고 처음으로 사이트를 방문하므로 짧은 기간 동안 취약합니다. 이러한 시나리오를 해결하기 위해 Chromium 프로젝트는 을 HSTS Preload List 유지 관리합니다(Microsoft Edge 및 Mozilla Firefox와 같은 다른 브라우저에서도 사용됨). 는 Preload List 사이트를 처음 방문하는 경우에도 HSTS를 적용합니다.

도메인을 HSTS 목록에 제출할 수 있습니다. 웹 서버(또는 이 경우 Exchange 서버)도 헤더의 Strict-Transport-Security 일부로 지시문을 보내 preload HSTS 사전 로드가 브라우저에서 수행되어야 한다는 신호를 보내야 합니다.

Exchange Server HTTP 연결을 처리하는 방법

기본적으로 Exchange Server 기본 웹 사이트에 SSL이 필요하므로 HTTP를 HTTPS 트래픽으로 리디렉션하지 않습니다. 자세한 내용은 Exchange 가상 디렉터리에 대한 기본 설정을 참조하세요 .

그러나 Exchange Server 웹용 Outlook https 리디렉션 구성에 설명된 단계에 따라 HTTP에서 HTTPS로 자동 리디렉션을 구성할 수 있으며, 따라서 Exchange Server HTTP를 통해 설정된 연결을 수락하고 으로 HTTP 302 redirect응답합니다.

HSTS는 HTTPS로 다시 쓰기가 브라우저 자체에서 수행되고 더 이상 서버에서 응답의 일부로 수행되지 않으므로 안전하지 않은 HTTP-HTTPS 리디렉션 수를 HTTP 302 redirect 크게 줄이는 데 도움이 될 수 있습니다. HSTS를 사용하면 성능이 향상될 수도 있지만 주요 용도는 아닙니다.

암호화되지 않은 연결을 허용하지 않는 기본 구성에 관계없이 헤더를 응답 헤더의 일부로 제공하는 Strict-Transport-Security 것이 좋습니다.

Exchange Server HSTS 사용

STS 헤더는 Exchange Server 2019 및 Exchange Server 2016에서 구성할 수 있지만 각 버전을 구성하는 방법은 다릅니다.

중요

HSTS는 클라이언트가 연결하는 엔드포인트이므로 에서 Default Web Site 만 구성해야 합니다. 에 HSTS를 Exchange Back End구성해서는 안 됩니다. 또한 계층 7(예: 부하 분산 장치 또는 역방향 프록시)을 통해 Exchange 서버 앞에서 작동하는 디바이스에서 응답 헤더를 통해 HSTS를 구성하는 것도 고려해야 합니다.

5분인 max-age 300(초)의 구성으로 시작하는 것이 좋습니다. 변경한 후에는 Exchange 서버에 대한 클라이언트 연결을 면밀히 모니터링하고 문제가 발생하면 변경 내용을 롤백해야 합니다.

1 max-age 주일() 또는 1개월(6048002592000) 값으로 업데이트하고 스테이지 전체를 max-age 기다린 후 계속 진행합니다. max-age 1년(31536000) 값은 보안 관점에서 최소값으로 설정해야 하며 도메인HSTS Preload List을 에 추가하려는 경우에도 최소한 필요합니다. max-age 값을 2년(63072000)의 값으로 설정하는 것이 좋습니다.

참고

다음 예제에서는 기능 유효성 검사에만 사용해야 하는 구성인 값을 300초로 설정합니다 max-age . 구성을 프로덕션으로 가져올 준비가 되면 특성 값을 더 높은 값으로 조정해야 합니다.

Exchange Server 2019

헤더를 보내기 위해 Exchange Server 2019를 Strict-Transport-Security 구성하려면 Windows PowerShell 또는 IIS Manager UI(사용자 인터페이스)를 사용할 수 있습니다. 다음 섹션에서는 두 메서드를 모두 설명합니다. HSTS 구성은 서버별 구성이므로 모든 Exchange 서버에서 수행해야 합니다.

PowerShell을 통한 HSTS 구성

관리자 권한 PowerShell 창에서 다음 명령을 실행하여 HSTS를 구성하고 사용하도록 설정합니다.

참고

Exchange Server 2019에 대해 더 높은 max-age 값을 구성하려면 더 높은 값을 사용하여 명령을 다시 실행할 수 있습니다. 기존 구성을 미리 제거할 필요가 없습니다.

Import-Module IISAdministration
Reset-IISServerManager -Confirm:$false
Start-IISCommitDelay

$sitesCollection = Get-IISConfigSection -SectionPath "system.applicationHost/sites" | Get-IISConfigCollection
$siteElement = Get-IISConfigCollectionElement -ConfigCollection $sitesCollection -ConfigAttribute @{"name"="Default Web Site"}
$hstsElement = Get-IISConfigElement -ConfigElement $siteElement -ChildElementName "hsts"
Set-IISConfigAttributeValue -ConfigElement $hstsElement -AttributeName "enabled" -AttributeValue $true
Set-IISConfigAttributeValue -ConfigElement $hstsElement -AttributeName "max-age" -AttributeValue 300
Set-IISConfigAttributeValue -ConfigElement $hstsElement -AttributeName "includeSubDomains" -AttributeValue $true

에 도메인HSTS Preload List을 추가하려는 경우 지시문도 헤더의 Strict-Transport-Security 일부로 전송되었는지 확인해야 preload 합니다. 도메인HSTS Preload List을 에 preload 제출할 계획이 없는 경우 지시문을 보내서는 안 됩니다.

Set-IISConfigAttributeValue -ConfigElement $hstsElement -AttributeName "preload" -AttributeValue $true

마지막으로 다음 명령을 실행하여 HSTS 구성을 완료해야 합니다.

Stop-IISCommitDelay
Remove-Module IISAdministration

IIS 관리자를 통한 HSTS 구성

인터넷 정보 서비스 관리자에서 다음 단계를 수행하여 HSTS를 구성하고 사용하도록 설정합니다.

  1. IIS 관리자 시작(InetMgr.exe)

  2. 으로 이동하여 Sites 을 클릭합니다. Default Web Site

  3. Actions 메뉴에서HSTS...

  4. 확인란을 Enable 선택하고, 값을 정의 max-age 하고, 이 문서의 설명에 따라 지시문을 선택합니다.

    중요

    HSTS 구성을 사용하여 HTTP를 HTTPS로 리디렉션할 수 없습니다. 이 경우 EMS(Exchange Management Shell)를 비롯한 일부 시나리오에 대한 연결이 끊어집니다. HTTP에서 HTTPS로 리디렉션을 사용하도록 설정하려면 Exchange Server 웹용 Outlook 대한 http to https 리디렉션 구성에 설명된 단계를 따라야 합니다.

  5. 구성을 완료하고 활성화하려면 클릭합니다 OK .

Exchange Server 2016

참고

HSTS 구성은 Exchange Server 2019에서 지원하는 운영 체제의 UI를 통해 가능하지만 이 컨트롤은 Exchange Server 2016에서 지원하는 운영 체제에서 기본적으로 사용할 수 없습니다. 따라서 PowerShell을 통해 수행할 단계만 설명합니다.

헤더를 보내기 위한 Exchange Server 2016을 Strict-Transport-Security 구성하려면 관리자 권한 PowerShell 창에서 다음 명령을 실행합니다. HSTS 구성은 서버별 구성이므로 모든 Exchange 서버에서 수행해야 합니다.

참고

Exchange Server 2016에 대해 더 높은 max-age 값을 구성하려면 다음 명령을 다시 실행하기 전에 먼저 HTTP 응답 헤더를 제거해야 합니다.

Windows Server 2012 & 2012 R2

도메인 HSTS Preload List을 에 추가하지 않으려는 경우 지시문이 preload 헤더의 Strict-Transport-Security 일부로 전송되지 않았는지 확인해야 합니다. 다음 명령을 실행하여 지시문을 보내지 않고 HSTS를 preload 구성합니다.

Import-Module WebAdministration
Add-WebConfigurationProperty -Filter "system.webServer/httpProtocol/customHeaders" -PSPath "IIS:\Sites\Default Web Site" -Name . -AtElement @{name="Strict-Transport-Security"} -Value @{name="Strict-Transport-Security";value="max-age=300; includeSubDomains"}

또는

에 도메인 HSTS Preload List을 추가하려는 경우 지시문이 preload 헤더의 Strict-Transport-Security 일부로 전송되었는지 확인해야 합니다. 다음 명령을 실행하여 HSTS 구성의 일부로 지시문을 보내 preload 도록 Exchange Server 구성합니다.

Import-Module WebAdministration
Add-WebConfigurationProperty -Filter "system.webServer/httpProtocol/customHeaders" -PSPath "IIS:\Sites\Default Web Site" -Name . -AtElement @{name="Strict-Transport-Security"} -Value @{name="Strict-Transport-Security";value="max-age=300; includeSubDomains; preload"}

Windows Server 2016

Import-Module IISAdministration
Reset-IISServerManager -Confirm:$false
Start-IISCommitDelay

$iisConfig = Get-IISConfigSection -SectionPath "system.webServer/httpProtocol" -CommitPath "Default Web Site" | Get-IISConfigCollection -CollectionName "customHeaders"

도메인 HSTS Preload List을 에 추가하지 않으려는 경우 지시문이 preload 헤더의 Strict-Transport-Security 일부로 전송되지 않았는지 확인해야 합니다. 다음 명령을 실행하여 지시문을 보내지 않고 HSTS를 preload 구성합니다.

New-IISConfigCollectionElement -ConfigCollection $iisConfig -ConfigAttribute @{"name"="Strict-Transport-Security"; "value"="max-age=300; includeSubDomains";}

또는

에 도메인 HSTS Preload List을 추가하려는 경우 지시문이 preload 헤더의 Strict-Transport-Security 일부로 전송되었는지 확인해야 합니다. 다음 명령을 실행하여 HSTS 구성의 일부로 지시문을 보내 preload 도록 Exchange Server 구성합니다.

New-IISConfigCollectionElement -ConfigCollection $iisConfig -ConfigAttribute @{"name"="Strict-Transport-Security"; "value"="max-age=300; includeSubDomains; preload";}

마지막으로 다음 명령을 실행하여 HSTS 구성을 완료해야 합니다.

Stop-IISCommitDelay
Remove-Module IISAdministration

Exchange Server HSTS 사용 안 함

Exchange Server 헤더 전송 Strict-Transport-Security 을 중지하려면 서버별 기반에서 구성을 롤백할 수 있습니다. HSTS를 사용하지 않도록 설정하는 단계는 Exchange Server 2016 및 Exchange Server 2019에서 다릅니다.

참고

HSTS 사양을 사용하면 값0이 인 max-age 지시문을 보낼 수 있습니다. 이 구성을 사용하여 HSTS 정책 정보를 캐시한 브라우저를 덮어쓸 수 있습니다. Exchange Server HSTS 구성을 제거하려는 경우 헤더 구성을 제거하기 Strict-Transport-Security 전에 먼저 값을 0 설정하는 max-age 것이 유용할 수 있습니다.

Exchange Server 2019

Exchange Server 2019에서 헤더 전송을 Strict-Transport-Security 중지하려면 Windows PowerShell 또는 IIS Manager UI(사용자 인터페이스)를 사용할 수 있습니다. 다음 섹션에서는 두 메서드를 모두 설명합니다.

PowerShell을 통한 HSTS 구성

관리자 권한 PowerShell 창에서 다음 명령을 실행하여 HSTS를 사용하지 않도록 설정합니다.

Import-Module IISAdministration
Reset-IISServerManager -Confirm:$false
Start-IISCommitDelay

$sitesCollection = Get-IISConfigSection -SectionPath "system.applicationHost/sites" | Get-IISConfigCollection
$siteElement = Get-IISConfigCollectionElement -ConfigCollection $sitesCollection -ConfigAttribute @{"name"="Default Web Site"}
$hstsElement = Get-IISConfigElement -ConfigElement $siteElement -ChildElementName "hsts"
Set-IISConfigAttributeValue -ConfigElement $hstsElement -AttributeName "enabled" -AttributeValue $false
Set-IISConfigAttributeValue -ConfigElement $hstsElement -AttributeName "max-age" -AttributeValue 0
Set-IISConfigAttributeValue -ConfigElement $hstsElement -AttributeName "includeSubDomains" -AttributeValue $false

이전 HSTS 구성이 지시문을 보내는 preload 경우 다음도 사용하지 않도록 설정해야 합니다.

중요

HSTS 사전 로드 목록에서도 제거를 요청해야 합니다. 미리 로드 목록에서 도메인을 제거하는 것을 잊어버린 경우 브라우저는 계속해서 HSTS를 적용하려고 시도합니다.

Set-IISConfigAttributeValue -ConfigElement $hstsElement -AttributeName "preload" -AttributeValue $false

마지막으로 다음 명령을 실행하여 HSTS 구성을 완료해야 합니다.

Stop-IISCommitDelay
Remove-Module IISAdministration

IIS 관리자를 통한 HSTS 구성

인터넷 정보 서비스 관리자에서 다음 단계를 수행하여 HSTS를 사용하지 않도록 설정합니다.

  1. IIS 관리자 시작(InetMgr.exe)

  2. 으로 이동하여 Sites 을 클릭합니다. Default Web Site

  3. Actions 메뉴에서HSTS...

  4. 모든 지시문의 선택을 취소하고 지시문을 로 0 설정하고 max-age 마지막으로 확인란의 선택을 취소합니다Enable.

  5. 구성을 완료하려면 클릭합니다 OK .

Exchange Server 2016

참고

HSTS 구성은 Exchange Server 2019에서 지원하는 운영 체제의 UI를 통해 가능하지만 이 컨트롤은 Exchange Server 2016에서 지원하는 운영 체제에서 기본적으로 사용할 수 없습니다. 따라서 PowerShell을 통해 수행할 단계만 설명합니다.

Exchange Server 2016에서 헤더 전송 Strict-Transport-Security 을 중지하려면 각 Exchange 서버의 관리자 권한 PowerShell 창에서 다음 명령을 실행합니다.

Windows Server 2012 & 2012 R2

Import-Module WebAdministration
Remove-WebConfigurationProperty -PSPath "IIS:\Sites\Default Web Site" -Filter "system.webServer/httpProtocol/customHeaders" -Name . -AtElement @{name="Strict-Transport-Security"}

Windows Server 2016

Import-Module IISAdministration
Reset-IISServerManager -Confirm:$false
Start-IISCommitDelay

$iisConfig = Get-IISConfigSection -SectionPath "system.webServer/httpProtocol" -CommitPath "Default Web Site" | Get-IISConfigCollection -CollectionName "customHeaders"

이전 HSTS 구성에서 지시문을 보내지preload 않은 경우 다음 명령을 실행합니다.

Remove-IISConfigCollectionElement -ConfigCollection $iisConfig -ConfigAttribute @{"name"="Strict-Transport-Security"; "value"="max-age=300; includeSubDomains";}

또는

이전 HSTS 구성이 지시문을 보내는preload 경우 다음 명령을 실행해야 합니다.

Remove-IISConfigCollectionElement -ConfigCollection $iisConfig -ConfigAttribute @{"name"="Strict-Transport-Security"; "value"="max-age=300; includeSubDomains; preload";}

마지막으로 다음 명령을 실행하여 HSTS 구성을 완료해야 합니다.

Stop-IISCommitDelay
Remove-Module IISAdministration

HSTS가 예상대로 작동하는지 확인

HSTS 보호가 예상대로 작동하는지 확인하는 가장 좋은 방법은 HSTS를 지원하는 최신 브라우저(예: Microsoft Edge, Firefox, Chrome, Safari, Opera 등)를 사용하는 것입니다. Microsoft Edge 브라우저를 사용할 때 다음 단계를 수행할 수 있습니다. 다른 브라우저를 사용하는 경우 설명서를 참조하여 HSTS 플래그를 확인하는 단계가 무엇인지 알아봅니다.

  1. 브라우저를 열고 OWA 또는 ECP에 대한 HTTPS 연결을 설정합니다. Exchange 서버에서 반환된 인증서가 사용한(예: e2k16-2.contoso.lab) 도메인과 일치하고 클라이언트 컴퓨터에서 신뢰할 수 있는지 확인합니다(도메인에 대한 브라우저의 HSTS 보호를 활성화하는 데 필요하기 때문에).
  2. 주소 표시줄에 를 입력 edge://net-internals/#hsts 하고 Enter 키를 누릅니다.
  3. OWA 또는 ECP(예: e2k16-2.contoso.lab) Query HSTS/PKP domain 에 액세스하는 데 사용한 도메인 이름을 상자에 입력하고 Enter 키를 누릅니다.

예:

결과가 Not found인 경우 이는 HSTS가 도메인에 사용되지 않음을 의미합니다. 그 이유는 URL이 이전에 방문하지 않았거나 HSTS 정책 저장소가 있는 항목이 만료되었기 때문입니다(지시문에 max-age 지정된 시간에 유효).

결과가 발견되면 출력은 다음과 같습니다.

HSTS를 사용하고 연결을 신뢰할 수 없는 경우(예: URL이 인증서가 발급된 도메인과 일치하지 않거나 인증서가 신뢰할 수 없거나 만료된 경우) 사용자는 바이패스할 수 없는 다음 경고를 볼 수 있습니다.

차단 페이지 Microsoft Edge:

차단 페이지 Mozilla Firefox: