[server] IIS7 : SSL 인증서 및 포트 443을 사용하여 사이트에서 호스트 이름을 설정할 수 없습니다

IIS7이 포함 된 Win 2008 SP2 시스템을 고려하십시오. 이 시스템의 유일한 사이트에 인증서 및 호스트 이름을 적용하는 것이 작업입니다. 사이트의 호스트 헤더는abc.123.example.com

첫 번째 단계는 .pfx를 개인 저장소에 설치하는 것이 었으며 성공했습니다.

IIS7은 인증서가 사용 가능한 것으로 확인되지만 호스트 이름 입력은 허용하지 않습니다. 인증서를 선택하기 전에도 호스트 이름 텍스트 상자는 항상 비활성화 / 회색으로 표시됩니다. 기본 포트 80 바인딩도 삭제했습니다.

사이트 바인딩

질문 : 이 사이트의 호스트 이름을 어떻게 설정합니까? 이 인증서가 와일드 카드 인증서의 문제입니까? SSL 요청이 웹 서버에 들어오고 패킷의 호스트 헤더가 암호화되어 있음을 이해합니다. 그러면 IIS6에서 호스트 헤더를 지정할 수 있지만 IIS7은 지정할 수없는 이유는 무엇입니까?

업데이트 : 인증서가 문제의 일부가 아닙니다. 컴퓨터에 새 사이트를 만들었으며 https 바인딩을 선택하면 호스트 이름 텍스트 상자가 비활성화됩니다.



답변

UI에서는 할 수 없으며 명령 줄에서해야합니다. 다음은 그 과정을 잘 살펴 보는 것입니다.

http://www.sslshopper.com/article-ssl-host-headers-in-iis-7.html


답변

GUI에서 작동합니다 …

설치하려는 인증서의 ‘친숙한 이름’이 인증서에 대해 만든 다중 도메인 이름과 동일한 지 확인하십시오.

즉. * .companydomain.com

* .companydoman.com 인증서에 ‘Nice friendly name’을 입력하면 인증서를 IIS에 설치할 때 호스트 이름 헤더 상자가 회색으로 표시됩니다.

* .companyname.com을 친숙한 이름으로 사용하면 황금색입니다.

팔.


답변

짧은 대답은 각 IP에 하나의 인증서 만 바인딩 할 수 있다는 것입니다. 따라서 해당 IP 주소로 어떤 호스트 이름이 지정 되더라도 인증서 바인딩이 적용됩니다. 호스트 이름을 지정할 수 있다는 것은 동일한 IP 주소와 포트에 여러 개의 호스트 이름과 인증서 조합이있을 수 있음을 의미하지만 (비 SSL 항목에서와 같이), 그렇지 않습니다. 따라서 필드를 사용할 수 없습니다.

보다 완전한 설명은 SSL이 트래픽을 암호화하고 해당 트래픽의 일부는 브라우저가 서버로 보낸 HTTP 헤더입니다. 이러한 헤더 중 하나는 IIS가 요청과 함께로드 할 사이트를 결정하는 데 사용하는 “호스트”헤더입니다. 요청 헤더가 전송되기 전에 보안 연결을 설정하려면 인증서를로드해야하므로 IIS는 IP 주소와 포트 번호 만 기반으로 인증서를 선택해야합니다. 어떤 사이트를로드해야하는지 입력 할 수 없습니다.

여기에 설명 기사입니다 SSL 연결의 내부 동작 미세한 세부 사항은.


답변

SSLShopper 응답은 호스트 헤더없이 바인딩을 남겨두고 인증서에 대한 연결을 끊지 않고 해당 바인딩을 제거 할 수 없기 때문에 작동하지 않았습니다. 작동시키는 데 사용한 방법은 다음과 같습니다.

이 답변은 인증서가 이미 생성되어 인증서 저장소에 추가되었고 IIS에 추가되었다고 가정합니다. 또한 SSL 이외의 다른 웹 사이트 바인딩을 원하지 않는다고 가정합니다.

먼저 정보를 수집해야합니다. 해시, 응용 프로그램 ID 및 호스트 이름이 필요합니다.

단계

  1. IIS를 열고 서버를 선택한 다음 하단 섹션에서 “서버 인증서”를 두 번 클릭하십시오. “발급 대상”주소를 적어 둡니다. 이것이 우리의 호스트 이름입니다. 이것을 저장하십시오.
  2. 귀하의 사이트를 선택하십시오
  3. http 프로토콜을 사용하여 사이트를 포트 80에 바인딩
  4. 다른 모든 바인딩 제거
  5. https 프로토콜을 사용하여 사이트를 포트 443에 바인딩
  6. 명령 프롬프트를 엽니 다

    netsh http show sslcert
    
  7. 인증서 해시 및 응용 프로그램 ID 저장

  8. 사이트에서 https 바인딩을 제거하십시오.
  9. 명령 프롬프트에서 :

    netsh http add sslcert ipport=0.0.0.0:443 certstorename=my certhash=<put Certificate Hash here> appid={<put Application ID here>}
    
    appcmd set site /site.name:"<put site name here>" /+bindings.[protocol='https',bindingInformation='*:443:<put host name here>']
    

참고 : Appcmd.exe는 c : \ windows \ system32 \ insetsrv에 있습니다. 이 명령이 작동하려면 해당 폴더에 있어야합니다.

  1. 사이트에서 http 바인딩을 제거하십시오.

답변

여기에 허용 된 답변은 혼란스럽고 질문에 맞지 않다고 생각합니다. 허용되는 답변이 아니어야합니다.

문제

와 같은 와일드 카드 SSL이 *.ipsum.com있고 인증서가 설치되어 있지만 텍스트 상자가 회색으로 표시되어 HTTPS 바인딩을 추가하려고하면 IIS에서 사이트의 호스트 이름을 선택할 수 없습니다.

해결책

와일드 카드 SSL은 모든 하위 도메인과 함께 사용할 수 있습니다 . 인증서의 이름을로 시작 해야 합니다 *. 예를 들어 와일드 카드 도메인과 같은 이름을 사용하는 것을 선호 *.ipsum.com하지만 별표를 사용하는 모든 것을 호출 할 수 있습니다.*foo

인증서에 잘못된 이름을 알려주었습니다. 도와주세요!

Windows 8 또는 Server 2012 certlm.msc부터 시작 메뉴에 입력 하여 로컬 컴퓨터의 인증서를 관리 할 수 ​​있습니다. 이전 버전의 창에서는 약간 더 복잡한 작업을 수행해야합니다.

  1. mmc.exe처음부터 실행
  2. File메뉴로 이동하여 선택 Add/Remove Snap-in...하거나 누르십시오(Ctrl-M)
  3. (가) 강조 Certificates에 스냅인 히트 Add >한 후 선택합니다 Computer Account다음에 Local Computer다음 히트 후속 대화 상자에서 Finish다음 OK스냅인 창을 닫습니다

주 창에서 확장 Certificates (Local Computer)한 후 Personal다음 Certificates인증서를 마우스 오른쪽 단추로 클릭에 당신은 수있을 것 명중 Properties당신이 쉬운 이름을 업데이트 할 수있는 곳.

IIS 관리자를 닫고 연 다음 호스트 이름을 설정할 수 있습니다.


답변

실제로 GUI를 통해 호스트 헤더를 추가 할 수는 있지만 인증서 이름이 어떻게 지정되는지에 달려 있습니다 … 내 이름이 와일드 카드 인증서에 * .xyz.com이라는 친숙한 이름을 지정하고 해당 인증서를 선택한 경우 GUI를 사용할 수 있습니다. 친숙한 이름이 xyzwildcard와 같고 선택하면 호스트 헤더 필드가 회색으로 표시됩니다.

이상한 이상한


답변

프로토콜이 https로 변경되거나 SSL 인증서를 추가 한 후 일부 시스템에서는 호스트 이름을 편집 할 수 없습니다. IIS는 때때로 심술 can을 수 있습니다.

이 Windows 명령은 “443”포트, “subdomain.domain.com”호스트 이름, “site name”사이트 이름에 “https”프로토콜을 사용하여 새 바인딩을 만듭니다. 요구 사항에 맞게 값을 따옴표로 변경하십시오. 그런 다음 포트 443을 사용하는 경우 이전 바인딩을 삭제해야합니다.

Run Windows Command Prompt as Administrator

C :>cd C:\Windows\System32\inetsrv

C : \ Windows \ System32 \ inetsrv>appcmd set site /site.name:"site_name" /+bindings.[protocol='https',bindingInformation='*:443:subdomain.domain.com']