호스트 헤더를 기반으로 한 SSL 인증서 선택 : 가능합니까?


17

웹 서버가 들어오는 연결의 호스트 헤더를 기반으로 사용할 SSL 인증서를 선택할 수 있습니까, 아니면 SSL 연결이 설정된 후에 만 ​​사용할 수있는 정보입니까?

즉, 내 웹 서버가 포트 443에 나열되어 https://foo.com 이 요청 되면 foo.com 인증서를 사용하고 https://bar.com 이 요청되거나 내가 시도하려고 하면 bar.com 인증서를 사용할 수 있습니까 클라이언트가 원하는 것을 알기 전에 서버가 SSL 연결을 설정해야하기 때문에 불가능한 것입니까?

답변:


23

역사적으로 첫 진술은 정확합니다. 이제 여러 옵션이 있습니다.

  • 동일한 도메인 내에 하위 도메인이있는 경우 와일드 카드 인증서
  • 인증서의 대체 이름을 지정하여 여러 인증서를 제공 할 수있는 SAN / UCC 인증서
  • 호스트 헤더 다음에 SSL 연결을 설정하기 위해 SNI가 도입되었습니다. 그러나 최신 버전이므로 지원이 제한적입니다.

이것은 ServerFault에서 나 자신과 다른 사람들에 의해 여러 번 답변되었습니다. 특정 질문이 없으면 추가 세부 정보를 검색하는 것이 좋습니다.


4
검색을했는데 아무것도 찾지 못했습니다. 이것은 아마도 답을 아는 경우 검색하기 쉬운 것들 중 하나 일 것이므로 검색어에 포함시킬 수 있습니다. 감사.
DrStalker

3
ServerFault에 대한 기존 답변이 있으면 해당 링크에 연결하는 것이 좋을 것입니다.
organicveggie 2016 년

serverfault.com/search , @organicveggie.
워너

3
SNI는 호스트 헤더 다음에 SSL 연결을 설정하지 않지만 SSL 데이터 교환에 호스트 이름을 포함합니다. SSL 개발자가 아닌 경우에는 중요하지 않습니다.
Bart van Heukelom

Serverfault를 검색하면 이에 대한 답이됩니다. 즉, 정식으로 다른 질문은이 질문과 중복됩니다. 그 연결 이 포함 된 검색 결과가 없습니다.
이안 보이드


3

짧은 답변 : 아니오

HTTP는 SSL 내부 에 캡슐화 되므로 연결이 설정 될 때까지 요청에 대한 정보에 액세스 할 수 없습니다. 따라서 인증서 가 클라이언트에 제공 될 때까지 . 헤더 나 다른 암호화 된 정보는 아직 사용할 수 없으므로 사용할 수 없습니다.

편집 : 요즘 크로스 브라우저가되고 완전히 휴대하기 를 원한다면 이것은 사실 입니다. 다른 사람들이 말했듯이, 가까운 미래에이를 가능하게하는 몇 가지 새로운 방법이 있습니다.


1

아니면 SSL 연결이 설정된 후에 만 ​​사용할 수있는 정보입니까?

옳은. SSL 연결은 HTTP 요청 (호스트 헤더 포함)의 일부가 전송되기 전에 설정됩니다.


2
그것은 더 이상 완전히 정확하지 않습니다.
Warner
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.