IIS 8.0 SNI(서버 이름 표시): SSL 확장성

작성자: Shaun Eagan

호환성

버전 참고
IIS 8.0 서버 이름 표시는 IIS 8.0에서 도입되었습니다.
IIS 7.5 서버 이름 표시는 IIS 7.5에서 지원되지 않습니다.
IIS 7.0 서버 이름 표시는 IIS 7.0에서 지원되지 않습니다.

문제

전자 상거래 사이트가 늘어나고 더 많은 기업이 온라인에서 중요한 문서를 저장하고 공유함에 따라 보안 사이트를 호스팅하고 확장하는 기능이 점점 더 중요해지고 있습니다. Windows Server 2012 이전에는 보안 사이트 호스팅과 관련하여 몇 가지 문제가 있었습니다.

  • SSL 확장성: 공유 호스팅과 같은 다중 테넌트 환경에서는 Windows Server에서 호스트할 수 있는 보안 사이트 수에 제한이 있어 사이트 밀도가 낮습니다.
  • IPv4 부족: 네트워크 엔드포인트는 IP:포트 바인딩으로만 식별할 수 있으므로 테넌트가 표준 SSL 포트(443)를 사용하도록 요청하므로 보안 사이트를 호스팅하는 것은 테넌트당 전용 IP 주소를 제공하는 것을 의미합니다.

솔루션

Windows Server 2012에서 IIS는 SSL 협상의 일부로 가상 도메인을 포함하는 TLS 확장인 SNI(서버 이름 표시)를 지원합니다. 이것이 효과적으로 의미하는 바는 이제 가상 도메인 이름 또는 호스트 이름을 사용하여 네트워크 엔드포인트를 식별할 수 있다는 것입니다. 또한 SNI를 보완하기 위해 확장성이 뛰어난 WebHosting 저장소가 만들어졌습니다. 그 결과 Windows Server 2012에서 보안 사이트 밀도가 훨씬 더 높으며 IP 주소가 하나만 있으면 됩니다.

이 기능을 사용하려면 클라이언트 브라우저에서 SNI를 지원해야 합니다. 대부분의 최신 브라우저는 SNI를 지원합니다. 그러나 Windows XP의 인터넷 Explorer(모든 버전)은 SNI를 지원하지 않습니다.

단계별 지침

필수 조건:

  • IIS 8.0은 Windows Server 2012에 설치됩니다.

    • WebHosting 인증서 저장소와 SNI는 모두 기본 IIS 설치의 일부입니다. 서버 관리자 설치해야 하는 특정 IIS 기능이 없습니다.
  • 샘플 인증서.

  • \windows\system32\drivers\etc\hosts가 샘플 사이트 및 인증서에 사용하도록 수정되었습니다. 예를 들어 인증서의 CN 이름이 TAPTesting인 경우 호스트 파일에는 다음이 포함되어야 합니다.

    127.0.0.1 TAPTesting
    

알려진 버그에 대한 해결 방법:

기존 SSL 바인딩(IP:포트) 및 SNI 바인딩(Hostname:Port)이 동일한 컴퓨터에 구성된 경우 IIS 관리자가 의도하지 않은 SSL 바인딩을 제거할 수 있는 코너 사례가 있습니다. 이 문제를 해결하거나 실제 SSL 바인딩을 확인하려면 명령줄 도구를 사용합니다.

netsh http show sslcert

웹 호스팅 저장소로 인증서 가져오기:

  1. MMC를 엽니다.
  2. 파일에서 스냅인 추가/제거를 선택합니다.
    MM C의 파일 메뉴를 보여 주는 스크린샷. 스냅 제거 추가가 강조 표시되어 있습니다.
  3. 인증서를 선택합니다. 추가를 클릭합니다.
    사용 가능한 스냅인에서 인증서가 선택된 스냅인 추가 또는 제거 대화 상자를 보여 주는 스크린샷
  4. 컴퓨터 계정 선택:
    인증서 스냅 대화 상자를 보여 주는 스크린샷 컴퓨터 계정이 선택되었습니다.
  5. 로컬 컴퓨터를 선택하고 마침을 클릭합니다.
    컴퓨터 선택 대화 상자를 보여 주는 스크린샷 로컬 컴퓨터가 선택되어 있습니다.
  6. 확인을 클릭합니다.
    스냅인 추가 또는 제거를 보여 주는 스크린샷
  7. 탐색 창에서 웹 호스팅 저장소를 찾습니다.
    인증서 노드 아래에 강조 표시된 웹 호스팅을 보여 주는 스크린샷
    웹 호스팅 저장소는 개인 저장소처럼 작동하므로 인증서를 가져오고 내보내는 모든 기존 도구가 동일한 방식으로 작동합니다. 웹 호스팅 저장소와 개인 저장소의 주요 차이점은 웹 호스팅 저장소가 더 많은 수의 인증서로 확장되도록 설계되었다는 것입니다.
  8. 샘플 인증서를 웹 호스팅 저장소로 가져옵니다.

보안 웹 사이트 만들기:

  1. IIS 관리자를 엽니다.

  2. 왼쪽 탐색 창에서 사이트를 선택합니다.
    I S 관리자를 보여 주는 스크린샷 사이트가 선택되어 있습니다.

  3. 사이트를 마우스 오른쪽 단추로 클릭하고 웹 사이트 추가를 선택합니다.
    사이트의 상황에 맞는 메뉴를 보여 주는 스크린샷

  4. 사이트를 만들 때와 마찬가지로 정보를 입력합니다.

    • 사이트 이름: 테스트

    • 물리적 경로: c:\inetpub\wwwroot

    • 형식: https

    • 호스트 이름: TAPTesting

      • SSL에 대해 호스트 이름을 지정할 수 있는 Windows Server 8의 새로운 기능입니다.
      • 인증서 이름 불일치 오류를 방지하려면 여기에 지정된 호스트 이름이 인증서의 CN 이름과 일치하는지 확인합니다.
      • 이 구성의 실제 값은 사용 중인 샘플 인증서에 따라 달라집니다.
    • 서버 이름 표시 사용: 선택됨

    • SSL 인증서: 인증서 이름을 Chhose합니다. 예: TAPTesting.

      • 인증서는 개인웹 호스팅 저장소 모두에서 제공됩니다.

      웹 사이트 추가 대화 상자를 보여 주는 스크린샷

  5. 사이트가 만들어졌는지 확인합니다.
    사이트 노드 아래에 강조 표시된 테스트를 보여 주는 스크린샷

  6. 이것으로 끝입니다. SNI를 사용하여 보안 사이트를 만들었습니다. 관리 환경은 기존 SSL 바인딩과 매우 유사합니다. 차이점은 다음과 같습니다.

    • 호스트 이름은 SSL 사이트에 대해 지정할 수 있습니다.
    • 인증서는 확장성을 위해 웹 호스팅 저장소에 저장됩니다.

보안 사이트 테스트:

브라우저를 열고 https://TAPTesting/ 로 이동합니다. 필수 구성 요소의 일부로 이 요청을 localhost로 라우팅하도록 호스트 파일을 수정해야 합니다.

인터넷 Explorer 보여 주는 스크린샷 I S 8은 웹 페이지에 큰 텍스트로 작성되었습니다.

또한 새 SSL 바인딩 형식을 보려면 관리자 권한 명령줄 창에 다음을 입력합니다.

netsh http show sslcert

명령 창을 보여 주는 스크린샷 호스트 이름 및 포트가 강조 표시됩니다.

SSL 바인딩은 TAPTesting:443 값을 가진 hostname:port입니다.

시나리오

다음 시나리오를 배포해 보세요.

  • SNI는 다중 테넌트 환경에 맞게 크기를 조정하도록 설계되었습니다. SNI를 사용하여 수천 개의 보안 사이트를 구성해 보세요.
  • 이전 버전의 Windows Server와 달리 Windows Server 2012의 인증서는 주문형 메모리에 로드됩니다. SNI를 사용하여 수천 개의 보안 사이트를 구성한 후 보안 사이트 중 하나에 GET 요청을 보내고 메모리 사용량을 관찰합니다. 그것은 무시할 수 있습니다. 이전 버전의 Windows Server에서 수백 개의 보안 사이트가 구성된 경우 GET 요청을 하나만 보내면 Windows Server에서 모든 인증서를 로드하여 메모리 사용량이 높아지고 확장성이 추가로 제한됩니다.
  • SNI와 기존 보안 사이트를 모두 사용하여 Windows Server 2012를 구성합니다. 공존하도록 설계되었습니다.

요약

Windows Server 2012에서 SNI(서버 이름 표시) 기능을 살펴보는 데 성공했습니다.