최근 Apache2를 버전 2.2.31로 업그레이드 한 후 SSL VirtualHost 설정에서 이상한 동작을 발견했습니다.
내가 호스팅하는 웹 사이트 중 일부는 클라이언트가 Server Name Identification
알고 있었 더라도 기본 호스트에 대한 인증서를 보여 주었으며 일부 웹 사이트 에서만 발생했습니다. 이것은 일반적인 파이어 폭스 / 크롬의 여권 경고로 표시됩니다. 홈 뱅킹을 탐색 할 때 사기 당했을 가능성이 있지만 단순히 그렇지 않았습니다.
분명히 서버 host.hostingdomain.org
에 자체 SSL이있는 경우 에 대한 https://www.hostedsite.org
보고서 인증서에 액세스하려고 시도 host.hostingdomain.org
했지만 일부 https://www.hostedsite.me
는 올바른 인증서를보고했습니다.
모든 사이트는 포트 443에서 동일한 IP 주소로 호스팅됩니다. 사실 VirtualHosting은 HTTP 측에서 작동하고 SNI 인식 클라이언트를 SSL로 자동 리디렉션하므로 SNI 인식 클라이언트와 역 호환됩니다.
문제가있는 VirtualHosts에 대한 오류 로그를 검토하면 다음 텍스트가 표시됩니다.
[Tue Dec 25 16:02:45 2012] [error] Server should be SSL-aware but has no certificate configured [Hint: SSLCertificateFile] (/path/to/www.site.org.conf:20)
실제로 가상 호스트는 SSLCertificateFile로 올바르게 구성되었습니다.
문제는 분명합니다 : 어떻게 고치겠습니까?
답변
최신 버전의 Apache에서는 버그 일 수 있습니다.
해결 방법 1 : 최신 안정으로 다운 그레이드
해결 방법 2 : 편집 listen.conf
다음으로 바꾸십시오 Listen *:443
(또는 Listen 443
설정에 따라).Listen *:443 http
답변
나는 똑같은 문제가 있었고 나를 위해 일한 것은 믿을 수 없을만큼 간단했습니다.
/etc/apache2/ports.conf 편집 (우분투 또는 httpd.conf 용)
ssl_module에서 “Listen 443″을 “Listen 443 http”로 변경하십시오.
답변
이를위한 또 다른 솔루션은 모든 : 443 호스트에 TLS 구성이 포함되도록하는 것입니다.
이 문제는 최근 데비안 wheezy에서 소개되었으며 http://blog.noizeramp.com/2010/10/03/apache-2-and-ssl-configuration/ 에서 해결책을 얻었습니다 .