누군가이 인증서의 차이점을 단순화 된 방법으로 설명해 줄 수 있습니까? 일부 기사를 읽었지만 동일한 작업을 수행하는 것처럼 들립니다. 즉, 하나의 인증서로 많은 도메인을 암호화합니다.
답변
SAN (Subject Alternative Name)은 X509 인증서 사양의 일부이며 인증서에는 주체에도 유효한 대체 이름 목록이있는 필드가 있습니다 (단일 공통 이름 / CN 외에). 이 필드와 와일드 카드 이름은 본질적으로 여러 이름에 하나의 인증서를 사용하는 두 가지 방법입니다.
SNI (Server Name Indication)는 HTTP 호스트 헤더와 동등한 TLS 프로토콜의 일종 인 TLS 프로토콜 확장 입니다. 클라이언트가 이것을 전송할 때, 서버 측에서 별도의 IP 주소를 사용하는 데 제한을 두지 않고 서버가 클라이언트에 제시 할 적절한 인증서를 선택할 수 있습니다 (HTTP 호스트 헤더가 일반 HTTP에 많이 사용되는 방식과 유사 함).
SNI는 인증서에 반영된 것이 아니며 실제로 질문에서 요구하는 것과는 정반대입니다. 여러 가지 용도로 하나의 인증서를 사용하지 않고 많은 인증서를 갖는 것을 단순화합니다.
다른 한편으로, 그것은 실제로 어떤 경로가 바람직한 상황에 크게 의존합니다. 예를 들어, 질문에서 요구하는 것은 다른 엔터티에 대한 인증서가 필요한 경우 실제로 원하는 것이 아닙니다.
답변
SAN 은 Subject Alternative Name의 약어 이며 x509 인증서 속성이며 SNI 는 SSL / TLS 클라이언트가 지원할 수있는 기능이므로 완전히 다른 엔티티입니다.
SAN 과 함께 인증서를 사용 하면 클라이언트가 SNI를 지원하지 않더라도 하나의 IP 주소에서 여러 HTTPS 지원 사이트를 호스팅 할 수 있습니다 . 이 경우 모든 사이트에 대해 하나의 인증서를 개최, 그러한 인증서 (사이트 이름을 모두 있어야합니다 ServerName
s 또는 ServerAlias
아파치 좌표 말이지, 또는 server_name
그것의로의 nginx에서) SAN을 . 이는 “각 개별 IP 주소에서 하나의 HTTPS 사용 가능 사이트”를 확장 한 기존 접근 방식의 하위 집합입니다. 현재는 큰 CDN 만 SAN에 붙어 있습니다 .
사용 SNI를 당신은 또한 호스트 여러 하나의 IP에 사이트를 HTTPS를 사용 할 수 있습니다, 당신은 각 사이트에 대해 별도의 X509 인증서를 누른 다음은 다른 사이트 이름 언급도의 SAN의 속성을하지만, TLS 클라이언트 (예 : 브라우저와 콘솔 클라이언트와 같은 wget
또는 curl
) SNI 를 지원해야합니다 . SNI 를 즉시 지원하지 않는 마지막 OS 가 IE 6.x가 설치된 Windows XP 이기 때문에 이것은 현대적인 접근 방식 입니다. 요즘 당신이 볼 수있는 SAN의 당신이 구매하는 경우 속성을 와일드 카드 예를 들어 같은 인증서에 대한 – 인증서를 *.foobar.com
포함 일반 이름 의 *.foobar.com
와 SAN 의를 foobar.com
.
답변
이것은 인증서 프로세스의 두 부분을 혼합합니다.
SAN은 주체 대체 이름입니다. 여러 도메인에 대해 하나의 인증서를 만드는 방법입니다. 인증서를 원하는 다른 도메인을 인증서의 SAN 필드에 추가하기 만하면됩니다. 그런 다음 브라우저는 이러한 도메인의 유효성도 수락합니다.
SNI는 서버 이름 표시이며 SSL의 일부입니다. 원하는 서버 이름이 SSL 핸드 셰이크와 함께 전송되고 서버가 응답에 대한 올바른 인증서를 선택할 수 있기 때문에 단일 IP에서 여러 SSL 사이트를 호스트 할 수 있습니다.
답변
여기에 인간이 읽을 수있는 더 많은 대답이 있습니다.
SNI는 클라이언트 측에서 수행되며 TLS 스택에 “이름이 [서버 X] 인 서버와 대화하고 싶습니다.” 서버는이 [Server X] 문자열을보고 적절한 인증서로 응답합니다. 한 가지 실제 예는 단일 서버가 여러 도메인에 대한 트래픽을 제공해야하는 경우입니다. 클라이언트가 DNS 조회 지연을 피하기 위해 IP를 사용했지만 인증서 CN이 IP를 언급하지 않은 경우에도 유용합니다.
SAN은 인증서의 “Also Known As”목록입니다. 이 방법으로 서버는 여러 이름에 단일 인증서를 사용할 수 있습니다. 하나의 인증서에 여러 도메인을 추가하고 IP 목록을 추가 할 수도 있습니다.
보다시피, 사물이 겹칩니다. 둘 중 하나를 선택하는 것은 어느 쪽이 제어 할 수 있는지에 달려 있습니다. 일부 클라이언트는 SAN에서 이름을 인식하지 못하고이를 해결하는 유일한 방법은 SNI를 기반으로 적절한 인증서를 제공하는 것입니다. 서버가 단일 인증서에 대한 API를 제공하거나 클라이언트가 SNI를 보내지 않는 시나리오가 있습니다. 이러한 경우 SAN이 유일한 방법입니다.
우리 회사는 두 가지를 모두 사용합니다. 유연성을 제공하고 이전 버전과의 호환성을보다 쉽게 만듭니다.