Apache httpd가 내 이름 기반 가상 호스트가 SNI 지원 브라우저에서만 작동한다고 알려주는 이유 (RFC 4366)


9

아파치가 왜이 오류 메시지를 로그에 표시합니까? 거짓 긍정입니까?

[warn] Init: Name-based SSL virtual hosts only work for clients with TLS server name indication support (RFC 4366)

최근 Centos 5.7에서 6.3으로 업그레이드했으며 최신 httpd 버전으로 업그레이드했습니다. 나는 항상 아래와 같이 SSL 가상 호스트 구성을 만들었습니다. 동일한 인증서를 공유하는 모든 도메인 (대부분 / 항상 와일드 카드 인증서)이 동일한 IP를 공유하는 경우 그러나 전에이 오류 메시지를 얻지 못했습니다 (또는 로그에서 충분히 보지 못했습니까?) SNI (서버 이름 표시)없이 작동해야한다는 것을 배웠습니다.

내 httpd.conf 파일의 관련 부분은 다음과 같습니다. 이 VirtualHost가 없으면 오류 메시지가 표시되지 않습니다.

NameVirtualHost 10.101.0.135:443

<VirtualHost 10.101.0.135:443>
  ServerName sub1.domain.com

  SSLEngine on
  SSLProtocol -all +SSLv3 +TLSv1
  SSLCipherSuite ALL:!aNull:!EDH:!DH:!ADH:!eNull:!LOW:!EXP:RC4+RSA+SHA1:+HIGH:+MEDIUM
  SSLCertificateFile /opt/RootLive/etc/ssl/ssl.crt/wild.fareoffice.com.crt
  SSLCertificateKeyFile /opt/RootLive/etc/ssl/ssl.key/wild.fareoffice.com.key
  SSLCertificateChainFile /opt/RootLive/etc/ssl/ca/geotrust-ca.pem
</VirtualHost>

<VirtualHost 10.101.0.135:443>
  ServerName sub2.domain.com

  SSLEngine on
  SSLProtocol -all +SSLv3 +TLSv1
  SSLCipherSuite ALL:!aNull:!EDH:!DH:!ADH:!eNull:!LOW:!EXP:RC4+RSA+SHA1:+HIGH:+MEDIUM
  SSLCertificateFile /opt/RootLive/etc/ssl/ssl.crt/wild.fareoffice.com.crt
  SSLCertificateKeyFile /opt/RootLive/etc/ssl/ssl.key/wild.fareoffice.com.key
  SSLCertificateChainFile /opt/RootLive/etc/ssl/ca/geotrust-ca.pem
</VirtualHost>

답변:


7

VirtualHost 지시문이 ServerName 지시문 및 / 또는 인증서 CN과 일치하지 않기 때문입니다. 비 와일드 부분이 동일해야하는 와일드 카드 인증서가 없으면 세 가지 모두 동일해야합니다.


그래서 여기에 대한 대답은 변경하는 <VirtualHost 10.101.0.135:443>것으로 선을 <VirtualHost sub2.domain.com:443>? 잠재적으로?
MichaelJones

@MichaelJones가 문제를 해결 했습니까?
페르난도 산티아고

@FernandoSantiago 이제 SNI가 충분히 신뢰할 수 없다는 것을 알게되면서 가상 호스트에 대해 다른 IP 주소를 지불합니다. 그리고 나는 그 VirtualHost선언에 IP 주소를 가지고 있습니다 .
MichaelJones

1
이것은 내 문제를 완벽하게 해결했습니다. VirtualHost와일드 카드를 사용하고 있지만 ServerName지시문은 인증서 CN과 일치합니다. 3 개의 매치와 비올라! PS :이 응답 serverfault.com/questions/578061/...은 어떻게 당신이 당신의 RSA 인증서에 넣어 CN 얻을하는 방법을 알려줍니다
3bdalla

3

오류가 아니라 경고 메시지입니다.

그리고 1) 아파치 버전을 업데이트했고 2) 동일한 IP 주소를 사용하는 2 개의 SSL VirtualHosts (2 개의 IP를 사용하는 것과 반대)를 가지고 있기 때문에 얻을 수 있습니다.

IP를 공유하고 있기 때문에 SNI를 지원하지 않는 브라우저는 첫 번째 웹 사이트 만 제공하며 두 번째 웹 사이트는 제공하지 않습니다.


SNI가없는 브라우저는 첫 번째 웹 사이트에 대해 구성된 인증서를 가져 오지만 실제로 요청을 처리하기 위해이를 호스트에 매핑하기 위해 Host헤더가 정상적으로 검사됩니다.
Shane Madden

@ ShaneMadden, SSL 연결이 설정되기 전에 Host : 헤더가 확인되지 않았으므로 정확하지 않습니다. 이것이 SNI 지원의 핵심입니다. 그렇지 않으면 SSL VH 당 1 개의 IP가 필요합니다. 따라서 SNI가 없으면 Apache는 기본적으로 해당 IP 주소에서 찾은 첫 번째 VH로 설정되며 Host : 헤더는 실제로 무시됩니다.
rightstuff 2009 년

... 그렇지 않으면 하나의 단일 IP 주소에서 100 개의 SSL NameBasedVirtualHosts를 수행 할 수 있으며 서버와 클라이언트의 SNI 지원 없이는 사실이 아니라는 것을 알고 있습니다.
rightstuff

4
Otherwise you could do 100s of SSL NameBasedVirtualHosts on 1 single IP address, and we know that's not true (without SNI support by server and client)할 수 있습니다. 일반적으로이 인증서는 모두 동일한 인증서, 와일드 카드 또는 대체 이름 인증서를 갖는 경우에 사용됩니다. 그러나 자체 SSL 인증서 (domain1.com 및 domain2.com)와 함께 domain1.com이 먼저 구성된 두 개의 vhost가 있다고 가정하십시오. SNI를 지원하지 않는 브라우저는 domain2.com을 요청합니다. 도메인 1 인증서를 보냈기 때문에 인증서 도메인 불일치 오류가 발생합니다. 그러나 클릭하면 도메인 2 컨텐츠를 얻습니다.
Shane Madden

1
호스트 헤더가 무시 된 경우 단순하고 광범위하게 배포 된 "여러 이름 기반 가상 호스트가 포함 된 와일드 카드 인증서"의 경우도 중단됩니다. 어쨌든, 여기에 그 행동이 표시된 곳에서 내가 대답 한 몇 가지 질문이 있습니다. serverfault.com/q/292637 serverfault.com/q/330212
Shane Madden
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.