it-swarm-korea.com

동일한 IP에서 SSL을 지원하는 여러 사이트를 설정하는 가장 좋은 옵션은 무엇입니까?

여러 호스트 이름이 동일한 IP에서 호스팅되는 경우 https를 지원하도록 허용하는 것은 간단하지 않습니다. 브라우저 지원 및/또는 웹 서버 지원 측면에서 가장 좋은 옵션은 무엇입니까?

22
Erlend

내가 본 것에서 "Server Name Indication" 현재 이것을 달성하는 주요 방법입니다.

단점 중 하나는 오래된 브라우저가이를 지원하지 않기 때문에 사이트에 따라 사용하지 못할 수도 있다는 것입니다.

편집 : @ D.W.와 @Piskvor의 의견을 업데이트하면 연결된 Wikipedia 페이지에 지원 및 지원되지 않는 브라우저 목록이있는 것처럼 보입니다.

Windows Vista 이상의 모든 버전의 Internet Explorer를 포함하여 널리 사용되는 모든 브라우저는 SNI를 지원합니다. Windows의 Internet Explorer 6, 7, 8 XP는 SNI를 지원하지 않는 기본 브라우저 였지만 2014 년 4 월 이후 더 이상 보안 업데이트를받지 않습니다.

18
Rory McCune

두 가지 방법이 있습니다. 모든 사이트에서 동일한 인증서를 사용하거나 (이 경우 클라이언트가 연결하려는 사이트에 관계없이 클라이언트 브라우저가 인증서를 수락하도록하는 방법이 필요함) 사이트에 따라 올바른 인증서를 선택합니다. 클라이언트가 연결하기를 원하는 것 (이 경우 해당 정보를 어떤 식 으로든 얻어야 함).

첫 번째 방법으로 브라우저가 서버 인증서에서 실제로 기대하는 것을 지정하는 RFC 2818 를 고려하십시오. 브라우저는 서버 이름 부분 (https:// 뒤, 다음 / 앞)을 포함하는 URL에 연결하려고합니다. 브라우저는 서버 인증서에서 해당 이름을 찾으려고합니다. 세부 사항은 섹션 3.1에 있습니다. 기본적으로 인증서의 주체 대체 이름 확장은 dNSName 유형의 이름을 검색하며 그 중 하나는 URL의 서버 이름과 일치해야합니다. 주체 대체 이름 확장에 dNSName가 전혀 포함되지 않은 경우, 서버 인증서에 주체 대체 이름 확장이없는 경우 subjectDN의 일반 이름이 사용됩니다. 와일드 카드 문자 "*"는 "모든"이름 부분을 일치시키는 데 사용할 수 있지만 모든 브라우저에서 안정적으로 지원되는 것은 아닙니다.

따라서 동일한 IP 및 포트에서 여러 사이트를 지원하려면 주체 대체 이름 확장에 모든 사이트 이름을 나열하는 인증서를 사용하십시오. 여기에는 몇 가지 단점이 있습니다. 그것은 모든 사이트 이름을 공개 합니다 (하나는 단순히 연결하고 인증서를 살펴보기 만하면됩니다). 또한 새 사이트를 추가 할 때마다 새 인증서를 받아야합니다. 마지막으로 인증서 제공 업체가 상황을 좀 더 어렵거나 비싸게 만들 수 있습니다 (예 : StartSSL 의 무료 인증서는 단일 도메인 전용입니다. 여러 도메인이있는 인증서를 얻으려면 비용을 지불해야합니다).

두 번째 방법은 SSL의 확장 인 서버 이름 표시 입니다. 이 확장을 사용할 때 클라이언트는 핸드 셰이크에서 원하는 서버 이름을 충분히 일찍 발표하므로 서버는 클라이언트가 통신하려는 사이트에 따라 사용할 인증서를 선택할 수 있습니다. 안타깝게도 Windows XP의 Internet Explorer에서는 SNI를 지원하지 않습니다. 이는 여전히 일반적인 조합입니다 ( StatCounter 글로벌 통계 에 따르면 2012 년 10 월 현재 웹 사용자 중 12 % 이상이 IE 8.0, WinXP에서 대부분의 경우, WinXP 공유가 OS의 27 %이므로 WinXP 사용자의 절반 이상이 비 IE 브라우저). 잠재적 인 사이트 사용자의 12 %를 버리는 것은 중요한 정책 결정입니다.

또한 SNI를 사용하는 경우 server 소프트웨어가이를 지원하고이를 사용하도록 구성해야합니다. Apache 및 mod_ssl을 사용하는 방법은 이 페이지 를 참조하십시오.

5
Thomas Pornin

또 다른 옵션은 호스트 이름에서 허용하는 경우 와일드 카드 SSL 인증서를 사용하는 것입니다.
그러면 www.yourdomain.com, mail.yourdomain.com, ftp.yourdomain.com 등을 포함하는 CN = *. yourdomain.com의 인증서를 갖게됩니다.

3

내가 아는 한, 대부분의 웹 서버에서 다른 호스트 이름을 가져야하고 동일한 IP에 있어야하는 경우 (가상 IP를 사용하는 것이 좋지만 그대로 두십시오) 다른 포트를 사용해야합니다.
예 : 443, 444, 445 등.

하지만 사용자에게 항상 직관적 인 것은 아닙니다.

2
AviD

Subject Alternative Names보다 유연하므로 Server Name Indication를 고려해 볼 수 있습니다 (이전 브라우저에서도 작동 할 수 있습니다!). SAN을 사용하면 SAN 구매처에 따라 최대 25 개의 DNS 이름 이상에 단일 인증서를 사용할 수 있습니다. 각 도메인은 다른 TLD를 가질 수 있습니다. .com, .org 등과 같은 수준 도메인).

와일드 카드 인증서도 작동 할 수 있지만 공통 상위 두 요소 (* .example.com)가 있어야합니다. 그러나 이러한 종류의 인증서를 사용하면 공급 업체의 전자 상거래 보험 대부분을 잃을 가능성이 있습니다. 이 유형의 EV 인증서를받을 수 없다고 생각합니다.

2
goodguys_activate