관리자 권한 없이 IIS 익스프레스 실행하기
- 본 번역문서의 원문은 Running IIS Express without Administrative Privileges www.iis.net 입니다.
개요
IIS 익스프레스는 일상적인 웹 개발 업무와 테스트의 대부분을 관리자 권한 없이도 수행할 수 있도록 설계되었습니다. 따라서, 웹 개발자가 컴퓨터의 관리자 권한을 갖고 있지 않아도 매우 편리합니다. 물론, 관리자 권한을 갖고 있는 사용자도 작업 흐름을 방해하는 윈도우 비스타와 윈도우 7의 사용자 접근 제어(UAC, User Account Control) 팝업 윈도우가 나타나는 횟수를 최소화시켜줍니다.
본문에서는 일반 사용자가 IIS 익스프레스를 이용해서 할 수 있는 작업들과 관리자만 수행할 수 있는 작업들에 관해서 살펴봅니다.
로컬에서 사이트 실행하기
IIS 익스프레스를 사용하는 경우, 일반 사용자들은 예약되어 있지 않은 포트 번호들(1024번 이상)을 사용해서 로컬에서 웹 사이트를 실핼할 수 있습니다. IIS 익스프레스의 기본 웹 사이트 바인딩은 http://localhost:8080입니다. 기본적으로 웹매트릭스와 비주얼 스튜디오 2010 SP1 베타 역시 localhost와 예약되지 않은 포트 번호들을 사용하도록 웹 사이트를 구성합니다.
반면, 외부 요청에 대응해서 콘텐츠를 제공하거나 80번이나 443번 같이 예약되어 있는 포트 번호를 사용하려면 관리자 권한이 필요합니다.
웹 사이트 및 응용 프로그램 구성
IIS와 IIS 익스프레스는 모두 서버 수준 구성 정보를 담고 있는 applicationhost.config 파일을 사용합니다. IIS 익스프레스를 사용하는 경우, 모든 사용자는 자신만의 applicationhost.config 파일을 갖게되므로 누구나 특별한 권한 없이도 사이트를 추가하거나 제거하고, 가상 디렉터리를 설정하는 등의 작업을 수행할 수 있습니다. IIS 익스프레스는 사용자의 Documents 폴더 하위에서 applicationhost.config 파일을 찾습니다 (윈도우 7의 경우 %userprofile%\Documents\IISExpress\config 폴더). 그리고, /config 명령 프롬프트 스위치로 IIS 익스프레스에 사용자 정의 applicationhost.config 파일을 지정할 수도 있습니다. 결국 비주얼 스튜디오에서 IIS 익스프레스를 사용하기 위해서 관리자 권한을 갖고 있어야 할 필요가 없어진 것입니다.
그러나, IIS 7은 일반 사용자들이 기록할 수 없는 컴퓨터 수준 applicationhost.config 파일을 사용하기 때문에, IIS 7을 사용하는 경우에는 반드시 관리자 권한을 갖고 있어야만 이런 작업들을 수행할 수 있습니다. (대체로 IIS 7은 서버 컴퓨터에서 사용되며 대부분 이런 환경에서는 개발자 각각의 관점에서 기능들이 제공되지는 않기 때문입니다.)
사이트 시작 및 중지
IIS 익스프레스를 사용하면 일반 사용자들도 마음대로 웹 서버를 시작하거나 중지할 수 있습니다. 웹매트릭스나 비주얼 스튜디오 2010 SP1 베타를 사용하거나 iisexpress.exe 명령 프롬프트 프로그램을 사용해서 이런 작업을 수행할 수 있습니다. 또한, 윈도우 시스템 트레이 응용 프로그램으로 IIS 익스프레스의 인스턴스들을 살펴보거나 종료시킬 수도 있습니다.
반면, IIS 7을 사용하는 경우에는 사용자가 직접 웹 사이트를 시작할 수 없으며, 윈도우 프로세스 활성화 서비스(WAS, Windows Process Activation Service)가 웹 사이트들을 활성화시키는 역할을 맡게 됩니다. 이 윈도우 프로세스 활성화 서비스는 시스템 서비스이므로 관리자만 시작하거나 중지할 수 있습니다.
SSL 사용하기
웹 사이트에 SSL(Secure Sockets Layer) 요청을 통해서 접근할 수 있도록 IIS 익스프레스를 구성하려면 IIS 7의 경우와 같이 관리자 권한이 필요합니다. 그러나, IIS 익스프레스 설치 프로그램이 일반 사용자가 IIS 익스프레스에서 SSL을 사용할 수 있도록 다음과 같은 작업들을 대신 처리해 줍니다:
- 자동으로 자체 서명된 SSL 서버 인증서를 생성하고 로컬 머신 저장소에 설치해줍니다.
- 포트 번호 44300번 부터 44399번까지 SSL을 위해서 예약하도록 HTTP.SYS를 구성합니다. localhost 및 해당 범위의 포트 번호를 사용하는 SSL 요청이 전달되면 자동적으로 자체 서명된 인증서에 연결됩니다.
HTTP.SYS는 IIS 7 및 IIS 익스프레스에 대한 SSL 요청을 처리해주는 운영 시스템 구성 요소입니다. 설치 프로그램이 HTTP.SYS를 구성할 수 있는 이유는 설치 프로그램이 권한 상승되어 실행되기 때문입니다.
그러므로, IIS 익스프레스를 사용하면서 SSL을 이용하여 웹 사이트를 테스트하려면 간단하게 applicationhost.config 파일의 site 요소에 다음과 같은 바인딩 정보 노드를 추가해주기만 하면 됩니다:
<binding protocol="https" bindingInformation="*:44300:localhost" />
지금까지 살펴본 내용들은 오직 로컬 통신(로컬호스트 요청)이면서 해당 범위 내부의 포트 번호를 사용하는 경우에만 정상적으로 동작합니다. 사용자 정의 SSL 인증서를 구성하거나 해당 범위 외부의 포트 번호를 사용해서 SSL을 실행하려면 관리자 권한이 필요합니다.
요약
IIS 익스프레스를 사용하는 경우, 일반 사용자들은 다음과 같은 작업들을 수행할 수 있습니다:
- 로컬에서 1024번 이상의 포트 번호를 사용해서 웹 사이트를 실행할 수 있습니다.
- 웹 사이트, 응용 프로그램 및 가상 디렉터리를 추가하거나 제거하고 변경할 수 있습니다.
- 웹 서버를 시작하거나 중지시킬 수 있습니다.
- 미리 설치된 자체 서명된 SSL 인증서와 포트 번호 44300번 부터 44399번 사이의 포트를 이용하여 웹 사이트를 테스트하기 위해 SSL 지원을 추가할 수 있습니다.
다음과 같은 작업들을 수행하기 위해서는 관리자 권한이 필요합니다:
- 80번 또는 443번 같이 예약된 포트를 사용하고자 하는 경우.
- 외부로부터 전달된 요청을 처리하고자 하는 경우.
- 사용자 정의 SSL 인증서를 구성하고자 하는 경우.
- 포트 번호 44300번 부터 44399번 외부의 포트 번호를 사용해서 SSL을 실행하고자 하는 경우.
- IIS 익스프레스의 개요 2011-02-16 09:55
- 관리자 권한 없이 IIS 익스프레스 실행하기 2011-02-19 10:33
- 명령 프롬프트에서 IIS 익스프레스 실행하기 2011-02-26 12:57
- IIS 익스프레스에서 URL 바인딩 실패 처리하기 2011-03-09 13:59
- Windows 시스템 트레이 프로그램으로 웹 사이트 및 응용 프로그램 관리하기 2011-03-18 13:59
- IIS 익스프레스 FAQ 2011-03-25 13:59
- IIS 7.5 익스프레스 추가 정보 2011-04-04 13:59