본문 바로가기
서버구축 (WEB,DB)

IIS 보안 웹서버 멀티도메인 인증서

by 날으는물고기 2009. 6. 21.

IIS 보안 웹서버 멀티도메인 인증서

정통부에서 발표한 웹사이트 보안 서버 의무화와 관련하여 1가지 이슈가 있습니다. 일반 기업체나 웹호스팅 업체에서 호스트헤더를 사용하여 웹사이트를 운영하고 있는 경우, SSL 보안 인증서를 적용할 수 있는 방법이 없었다는 것입니다. 

호스트헤더 방식을 간단히 설명하면, 하나의 IP 어드레스로 80포트를 이용하여 여러개의 웹사이트를 운영하고자 하는 경우 사용하는 방식으로 www.contoso.com, www.contoso1.com 등을 호스트헤더 값으로 입력하면 해당 URL을 입력 시 호스트헤더 값을 웹서버가 파악하여 해당 사이트로 보내주는 방식을 의미합니다.

아래 그램 참조)
 
문제는 HTTPS 통신(SSL, 포트 443)은 호스트헤더를 지원하지 않기에 발생합니다. 암호화되었기 때문에, 헤더내의 값을 파악할 수 없고 해당 사이트로 리디렉션할 수도 없다는 의미입니다.

결국 HTTPS를 운영하기 위해서는 IP 1개당 인증서 1개가 필요합니다. 즉, 하나의 웹 서버에 여러 웹 사이트를 운영하고 있는 경우 웹 사이트 한개당 하나의 IP를 부여해야 한다는 것이고, 대부분의 업체가 감당할 수 없는 내용입니다. (보통 서버 1대당 적게는 5개에서 많게는 100여개 이상의 웹사이트가 운영중인데, 각 사이트에 할당할 수 있는 IP 갯수를 가지고 있지 않기 때문입니다)

이러한 문제점을 해결하기 위한 방법을 설명하겠습니다.

첫째, 와일드카드 인증서입니다.

HTTPS를 위해서는 서버에 서버 인증을 위한 공인인증서가 필요합니다. 클라이언트가 서버에 접근하여, 서버의 인증서에 대한 유효성 여부를 검사할 때, 몇가지 체크하는 사항이 있습니다.

1. 접속하는 URL과 서버 인증서의 Subject Name 일치 여부
2. 서버 인증서의 유효 기간
3. 서버 인증서의 발급기관을 신뢰하고 있는지 여부

1번에서 체크하는 서버 인증서의 Subject Name과 클라이언트가 접속하는 URL을 비교하는 작업에서 와일드 카드 인증서를 사용하실 수 있습니다. 서비스 하고자 하는 웹 사이트가 www.angel.com 이라면 인증서의 Subject Name에도 www.angel.com 이 명시되게 됩니다. 원칙적으론 1 URL : 1 인증서가 매핑되어야 하나, 와일드 카드가 포함된 Subject Name을 가진 인증서(예를 들어 *.angel.com)을 사용하게 되면, www.angel.com, ftp.angel.com, mail.angel.com에 대한 이름이 모두 와일드 카드 인증서에 의해 HTTPS 사이트로 처리될 수 있습니다.

하지만 와일드카드 인증서에도 한계가 존재합니다. 하부 도메인이 다른 경우엔, 활용할 수 없다는 문제점이 있습니다. 

둘째, KISA에서 제공하고 있는 보안 서버 구축 가이드에 수록된 멀티도메인 SSL 인증서입니다.

정확한 기술적 정의로는 Subject Alternative Name - RFC2459를 활용하는 것입니다. RFC2459의 4.2.1.7을 살펴보면 Subject Alternative Name을 이용하여 인증서의 Subject를 추가로 사용할 수 있다고 쓰여 있습니다.

Windows Server에서 테스트를 위해 Subject Alternative Name 속성을 가지고 있는 인증서를 배포할 수 있습니다.

How to add a Subject Alternative Name to a secure LDAP certificate

 
실제 상용 인증 기관에서도 해당 속성을 사용하여 다중 도메인용 인증서를 배포하고 있는 업체도 있습니다. IIS 5.0에서는 해당 기능을 사용할 수 없다는 문제점이 있습니다만, Windows Server 2003의 IIS 6.0과 Apache 웹 서버에서 모두 사용할 수 있는 방법입니다. Subject Alternative Name을 지원하는 인증서를 사용하시면, 1개의 IP에서 여러 웹 사이트를 HTTPS로 운영하기 위한 기본적인 인증서 문제 해결의 한 방법으로 활용할 수 있습니다.

IIS 6.0의 경우, 인증서뿐만 아니라, 개별 SSL 웹사이트 별로 호스트 헤더를 인식시키기 위해 SecureBinding 메타베이스 속성 내에 호스트 헤더를 포함하도록 추가해줘야 합니다.

SSL 호스트 헤더의 서버 바인딩 구성 (IIS 6.0)


이러한 Subject Alternative Name을 사용하게 되면 KISA의 보안 서버 구축 가이드에서 제시한데로 몇가지 문제점이 있습니다. 이 부분은 충분한 검토를 해보신 후 적용하실 것을 권고 드립니다.

위에 설명드린 것과 같이 현재 상황에 맞게 적용하시면 될 것 같습니다. 
첫째, 1개의 IP에 1개의 SSL을 적용하는 방법
둘째, 1개의 IP에 하부도메인이 같을 경우 1개의 SSL을 적용하는 방법
셋째, 1개의 IP에 Subject Alternative Name을 사용하여 1개의 SSL을 적용하는 방법 
        (시중에 나와있는 SSL 중 Subject Alternative Name Spec을 지원하는 상품을 선택하시면 됩니다)


출처 : http://blogs.technet.com/koalra/
728x90

댓글