호스트 헤더를 기반으로 한 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.