2008-11-09 7 views
8

웹 서버가 있는데 도메인 이름은 다르지만 할당 된 IP 주소는 하나뿐입니다. 아파치 가상 호스트에서 잘 작동합니다. 이제 웹 사이트에 대한 SSL 암호화 연결이 필요합니다. 어떻게 서로 다른 가상 호스트에 대해 서로 다른 SSL 인증서를 설정할 수 있습니까?Apache의 가상 호스트에 대해 다른 SSL 인증서를 설치하려면 어떻게해야합니까?

다른 호스트 이름에 다른 IP를 사용하는 것은 해결책이 될 수 있습니다. 그다지 우아하지는 않지만 가능합니다. 그러나 나는 다른 가상 호스트에 대해 서로 다른 SSL 인증서를 어떻게 사용할 수 있는지 알고 싶습니다. 따라서 하나의 IP 주소 만 가진 솔루션을 찾습니다.

답변

8

UPDATE : 2013

는 이전 버전의 브라우저 멀리 떨어지는으로 SNI 마침내 걸릴 보류를 시작하는 것 같습니다. 다음은 docs for Apache SNI이며 여기에는 해당 브라우저를 지원하는 브라우저 차트가 포함 된 wikipedia article on SNI이 있습니다. 즉, 모든 주요 브라우저는 지원되는 버전에서 지원합니다. 오래된 브라우저를 지원하는 것이 중요하다면이를 고려해야 할 수도 있습니다.

------

SSL 호스트는 따라서 가상 호스팅을 사용할 수없는 고유 한 IP 주소/포트 조합에 연결해야 ------------ 이전 대답 (또는 최소한 IP 주소 당 하나의 SSL 호스트 만 가질 수 있습니다). 이는 Host : 매개 변수가 http로 전송되기 전에 https가 암호화를 시작하므로 호스트 이름에서 사용할 암호를 IP 주소로 결정할 수 없기 때문입니다.

HTTP에 TLS 명령이 있으면 호스트 이름을 물어 본 후에 SSL을 시작할 수 있지만 바꿀 필요가없는 사람은 아무 것도 묻지 않습니다. 이 mod_ssl을을 사용하여 이름 기반 가상 호스트에 대해 서로 다른 SSL 인증서를 설정할 수는 없습니다 AFAIK

확실한 대답을 위해, http://httpd.apache.org/docs/2.0/ssl/ssl_faq.html#vhosts2

+2

실제로 HTTP 연결에서 TLS 업그레이드를 허용하는 RFC 2817이 현재 있습니다. 그것은 아파치에서 구현됩니다. –

+0

하지만 브라우저가 아직 지원합니까? – DGM

2

를 참조하십시오. 자세한 이유는 here입니다. 다른 방법으로는 IP 기반 가상 호스트를 사용하는 것입니다 (이것은 아마도 가능하지 않거나 매우 만족스러운 해결책은 아닙니다). 다른 SSLCertificateFile 지시문을 삽입하거나 mod_gnutls를 사용하여 this 메쏘드를 시도해보십시오.

+0

와우, SNI에 대한 RFC는 2003 년에 시작되었지만 여전히 아직 파악하지 못했습니까? 나는 브라우저가 이미 그것을 지원한다는 주장에 흥미가있다. – DGM

4

주어진 답변과 의견 (특히 Martin v. Löwis)에 대한 힌트를 얻은 후에 나는 검색을 수행하여 this website about RFC 2817 and RFC 3546을 발견했습니다. RFC 3546은 좋은 해결책 인 것 같습니다.

1

각 가상 호스트마다 별도의 IP : 포트 조합이 필요합니다.

RFC 3546은 아직 실현할 수 없습니다. IE는 Vista에서 실행될 때만 지원하며, Safari가 마지막으로 관리하지 않는지 확인합니다.

+0

예,이 기능을 지원하는 브라우저는 제한되어 있지만 가능한 해결책 중 하나입니다. 동정, 그 '올바른'해결책이 존재하지 않습니다. RFC 3546은 좋은 해결책을위한 최선의 희망입니다. 당분간 더 많은 IP를 주문하거나 브라우저를 제한해야합니다. – Mnementh

+0

예 또는 다른 포트에서 실행중인 추악한 일시적인 솔루션입니다. RFC3546이 발생하지만 그 날은 여전히 ​​불행히도 먼 길입니다. – bobince

1

언급 한 모든 DGM이 사실이지만 mod_gnutls를 포함하고 TLS extensions을 사용하는 모든 인증서에 대해 고유 IP 주소 요구 사항을 해결하려는 시도가있었습니다. 몇 가지 단점이 있지만 그들은 당신에게 받아 들여질 수 있습니다.

1

마침내 가능합니다!

  • 모질라 파이어 폭스 2.0 이상
  • 오페라 8.0 이상 (TLS 1 : 당신은 SNI를 지원

    브라우저를, (SNI)를 서버 이름 표시를 지원하기 위해 서버와 클라이언트가 필요합니다.1 10.5.6

이 문서가 구성 괭이를 보여줍니다 비스타가 아닌 XP)

  • 구글 크롬
  • 사파리 3.2.1에서 Mac OS X에 (7.0 이상)
  • Internet Explorer를 활성화하여 서버 : SSL with Virtual Hosts Using SNI