HTTP 및 HTTPS 구성

WCF 서비스 및 클라이언트는 HTTP 및 HTTPS를 통해 통신할 수 있습니다. HTTP/HTTPS 설정은 IIS(인터넷 정보 서비스)나 명령줄 도구를 사용하여 구성합니다. WCF 서비스가 IIS 아래에서 호스팅되는 경우 IIS에서 inetmgr.exe 도구를 사용하여 HTTP 또는 HTTPS 설정을 구성할 수 있습니다. WCF 서비스가 자체 호스팅되는 경우 HTTP 또는 HTTPS 설정은 명령줄 도구를 사용하여 구성됩니다.

HTTP 설정 구성에 사용하는 도구는 컴퓨터에서 실행되고 있는 운영 체제에 따라 다릅니다.

Windows Server 2003 또는 Windows XP를 실행하는 경우 HttpCfg.exe 도구를 사용합니다. Windows Server 2003에서는 이 도구를 자동으로 설치합니다. Windows XP를 실행하는 경우 Windows XP 서비스 팩 2 지원 도구에서 이 도구를 다운로드할 수 있습니다. 자세한 내용은 다음 항목을 참조하십시오. Httpcfg 개요를 참조하십시오.

Windows Vista 또는 Windows 7을 실행하는 경우에는 Netsh.exe 도구를 사용하여 이러한 설정을 구성합니다.

SSL 인증서 구성

SSL(Secure Sockets Layer) 프로토콜은 클라이언트 및 서버에서 인증서를 사용하여 암호화 키를 저장합니다. 서버는 클라이언트가 서버 ID를 확인할 수 있도록 연결된 경우 SSL 인증서를 제공합니다. 또한 서버는 양쪽 연결에 상호 인증을 제공하기 위해 클라이언트로부터 인증서를 요청할 수 있습니다.

인증서는 연결 IP 주소 및 연결 포트 번호에 따라 중앙 저장소에 저장됩니다. 특수 IP 주소 0.0.0.0은 로컬 시스템의 IP 주소와 일치합니다. 인증서 저장소는 경로에 따라 URL을 구분하지 않습니다. IP 주소와 포트 조합이 같은 서비스는 서비스의 URL 경로가 다른 경우에도 인증서를 공유해야 합니다.

단계별 지침은 방법: SSL 인증서를 사용하여 포트 구성을 참조하십시오.

네임스페이스 예약 구성

네임스페이스 예약은 HTTP URL 네임스페이스 일부에 대한 권한을 특정 사용자 그룹에 할당합니다. 예약을 통해 이러한 사용자에게 네임스페이스의 해당 부분에서 수신 대기하는 서비스를 만들 수 있는 권한을 제공합니다. 예약은 URL 접두사이며 예약이 예약 경로의 모든 하위 경로를 포함함을 의미합니다. 네임스페이스 예약은 와일드카드를 사용하는 두 가지 방법을 허용합니다. HTTP Server API 설명서에서는 와일드카드가 포함된 네임스페이스 클레임 확인 순서에 대해 설명합니다.

실행 중인 응용 프로그램에서 비슷한 요청을 만들어 네임스페이스 등록을 추가할 수 있습니다. 등록과 예약은 네임스페이스의 특정 부분에 대해 충돌합니다. 와일드카드가 포함된 네임스페이스 클레임 확인 순서에 제공된 확인 순서에 따라 예약이 등록보다 우선합니다. 이 경우 예약은 실행 중인 응용 프로그램이 요청을 수신하지 못하도록 차단합니다.

Windows XP 또는 Server 2003 실행

httpcfg.exe set urlacl 명령을 사용하여 네임스페이스 예약을 변경합니다. Windows 지원 도구 문서에서는 Httpcfg.exe 도구에 대한 구문을 설명합니다. 네임스페이스 특정 부분에 대한 예약 권한을 수정하려면 네임스페이스 해당 부분에 대한 관리자 권한 또는 소유권이 필요합니다. 처음에 전체 HTTP 네임스페이스는 로컬 관리자에 속합니다.

다음은 set urlacl 옵션이 있는 Httpcfg 명령 구문을 보여 줍니다.

httpcfg set urlacl /u {http://URL:Port/ | https://URL:Port/} /aACL

/u 매개 변수는 set urlacl을 사용하는 경우 필요합니다. 이 매개 변수는 만들고 있는 예약에 대한 레코드 키 역할을 수행하는 정규화된 URL이 포함된 문자열을 사용합니다.

/a 매개 변수도 set urlacl을 사용하는 경우 필요합니다. 이 매개 변수는 SDDL(Security Descriptor Definition Language) 문자열 형식의 ACL(액세스 제어 목록)이 포함된 문자열을 사용합니다.

다음에서는 이 명령을 사용하는 예를 보여 줍니다.

httpcfg.exe set urlacl /u http://myhost:8000/ /a "O:AOG:DAD:(A;;RPWPCCDCLCSWRCWDWOGA;;;S-1-0-0)"

Windows Vista, Windows Server 2008 R2 또는 Windows 7 실행

Windows Vista, Windows Server 2008 R2 또는 Windows 7에서 실행 중인 경우에는 Netsh.exe 도구를 사용합니다. 다음에서는 이 명령을 사용하는 예를 보여 줍니다.

netsh http add urlacl url=http://+:80/MyUri user=DOMAIN\user

이 명령은 도메인\사용자 계정의 지정된 URL 네임스페이스에 대한 URL 예약을 추가합니다. netsh 명령을 사용하는 방법에 대한 자세한 내용을 보려면 명령 프롬프트에 “netsh http add urlacl”을 입력하고 Enter 키를 누르십시오.

IP 수신 대기 목록 구성

사용자가 URL을 등록하면 HTTP Server API는 IP 주소 및 포트에만 바인딩됩니다. 기본적으로 HTTP Server API는 모든 시스템 IP 주소에 대한 URL의 포트에 바인딩됩니다. HTTP Server API를 사용하지 않는 응용 프로그램이 이전에 해당 IP 주소 및 포트 조합에 바인딩된 경우 충돌이 발생합니다. IP 수신 대기 목록을 사용하면 WCF 서비스는 일부 시스템 IP 주소에 대한 포트를 사용하는 응용 프로그램과 함께 사용할 수 있습니다. IP 수신 대기 목록에 항목이 포함된 경우 HTTP Server API는 목록에서 지정한 IP 주소에만 바인딩됩니다. IP 수신 대기 목록을 수정하려면 관리자 권한이 필요합니다.

Windows XP 또는 Server 2003 실행

다음 예제와 같이 httpcfg 도구를 사용하여 IP 수신 대기 목록을 수정합니다. Windows 지원 도구 문서에서는 httpcfg.exe 도구에 대한 구문을 설명합니다.

httpcfg.exe set iplisten -i 0.0.0.0:8000

Windows Vista 또는 Windows 7 실행

다음 예제와 같이 netsh 도구를 사용하여 IP 수신 대기 목록을 수정합니다.

netsh http add iplisten ipaddress=0.0.0.0:8000

기타 구성 설정

WCF의 자체 호스팅 HTTP 주소 지정은 Windows 방화벽과 통합되지 않습니다. 특정 URL을 사용하여 인바운드 연결을 허용하려면 예외를 방화벽 구성에 추가해야 합니다.

WsDualHttpBinding을 사용하는 경우 클라이언트 연결은 네임스페이스 예약 및 Windows 방화벽과 호환되는 기본값을 사용합니다. 이중 연결에 대한 클라이언트 기본 주소를 사용자 지정하는 경우에도 새 주소와 일치하도록 클라이언트에 이러한 HTTP 설정을 구성해야 합니다.

HTTP Server API에는 HttpCfg를 통해 사용할 수 없는 일부 고급 구성 설정이 포함되어 있습니다. 이러한 설정은 레지스트리에 유지되며 HTTP Server API를 사용하는 시스템에서 실행되는 모든 응용 프로그램에 적용됩니다. 이러한 설정에 대한 내용은 IIS에 대한 Http.sys 레지스트리 설정을 참조하십시오. 대부분의 사용자는 이러한 설정을 변경할 필요 없습니다.

Windows XP 관련 문제

IIS는 Windows XP에서 포트 공유를 지원하지 않습니다. IIS가 실행 중이고 WCF 서비스가 동일한 포트를 가진 네임스페이스를 사용하려는 경우 WCF 서비스를 시작할 수 없습니다. IIS 및 WCF 모두 기본적으로 포트 80을 사용합니다. 서비스 중 하나에 대한 포트 할당을 변경하거나 IP 수신 대기 목록을 사용하여 WCF 서비스를 IIS에서 사용하지 않는 네트워크 어댑터에 할당합니다. HTTP Server API를 사용할 수 있도록 IIS 6.0 이상이 다시 디자인되었습니다.

참고 항목

작업

방법: SSL 인증서를 사용하여 포트 구성

참조

WsDualHttpBinding