
내 서버는 사이트 wwww
에 포함된 요청을 리디렉션하기 위해 다음 줄을 추가할 때까지 자체 서명된 SSL 인증서로 제대로 작동합니다 .non-www
<VirtualHost *:443>
ServerName www.mydomain.com
Redirect permanent / https://mydomain.com/
</VirtualHost>
내가 얻은 오류는 다음과 같습니다.
서버는 SSL을 인식해야 하지만 인증서가 구성되어 있지 않습니다. [힌트: SSLCertificateFile] ((null):0)
간단한 리디렉션에는 SSL이 필요하지 않다고 생각했습니다. 이 간단한 리디렉션이 작동하려면 어떻게 해야 합니까?
답변1
문제는 SSL을 사용하는 경우 여러 개의 NameVirtualHost를 가질 수 없다는 것입니다. 이는 다양한 웹 서버에서 흔히 발생하는 문제입니다.
그 이유는 네트워크 계층에 있습니다. HTTP는 SSL 위에 있습니다. 즉, 먼저 SSL 연결을 설정한 다음 HTTP 요청을 전송해야 합니다. 그러나 HTTP 요청은 이 요청을 처리해야 하는 NameVirtualHost를 결정하고 동시에 SSL 인증서는 NameVirtualHosts에 특정할 수 있으므로 이 요청을 처리할 NameVirtualHost가 SSL 시점에 아직 알려지지 않은 경우 SSL 연결을 어떻게 설정할 수 있습니까? 악수?
이 문제에 대해 이야기하고 해결 방법을 제안하는 사람들이 많아졌습니다. 서로 다른 가상 호스트를 서로 다른 IP 또는 포트에 배치하는 것과 마찬가지로 SSL 연결이 설정되기 전에 IP 및 포트가 알려지기 때문에 문제가 해결됩니다.
또한 VirtualHost에는 SSL 관련 지시문 SSLEngine on
및 기타 SSL*
지시문이 없습니다. SSL 없이 VirtualHost를 포트 443에서 수신 대기하도록 구성했지만 포트 443의 다른 VirtualHost에는 SSL이 활성화되어 있기 때문에 이것이 이 오류가 발생하는 이유일 것입니다. 위에서 설명한 이유로 인해 작동하지 않습니다.