내 가상 호스트는 다음과 같습니다.
<VirtualHost example.com:443>
SSLEngine on
SSLCertificateFile /etc/apache2/ssl-keys/example/example.crt
SSLCertificateKeyFile /etc/apache2/ssl-keys/example/example.key
SSLCACertificateFile /etc/apache2/ssl-keys/example/COMODO_EV_SSL.ca-bundle.crt
SSLProtocol -ALL -SSLv3 +TLSv1
SSLCipherSuite ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM
SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
BrowserMatch ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
CustomLog logs/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
DocumentRoot /home/example/www/current/web
ServerName example.com
ServerAlias www.example.com
<IfModule php5_module>
php_value newrelic.appname "Example"
</IfModule>
</VirtualHost>
내가 가면https://example.com모두 괜찮습니다. 그러나 같은 서버를 가리키는 다른 도메인으로 이동하면 이유를 알 수 없습니다.https://anydomain.com그러면 위의 가상 호스트가 응답합니다. 분명히 브라우저에는 인증서가 도메인과 일치하지 않는다고 표시되지만 이를 무시한 후에는 다음에서 웹사이트를 볼 수 있습니다.https://example.com아래에https://anydomain.com, 그 아래에도http://anydomain.com나는 완전히 다른 웹 사이트를 가지고 있습니다.
나는 그것을 사용할 수 있다는 것을 안다https~에http://anydomain.com다른 IP 주소를 사용하여 다른 인증서를 설정해야 하는데 이는 내 문제가 아닙니다.
다음 옵션 중 하나를 달성하고 싶습니다.
- https://anydomain.com다음을 가리켜야 한다http://anydomain.com
- https://anydomain.com404 오류를 반환합니다.
이를 어떻게 달성합니까? 미리 감사드립니다.
답변1
포트에 대해 하나의 가상 호스트만 정의하면 Apache는 이를 기본 가상 호스트로 처리하고 이에 연결하는 모든 클라이언트에 제공합니다.
따라서 필요한 것은 다른 가상 호스트를 추가하고, 이를 기본 호스트로 취급해야 함을 표시하고, 404 클라이언트가 되도록 설정하는 것입니다. example.com에 액세스하는 클라이언트에도 사용되므로 example.com과 동일한 인증서를 사용해야 합니다.https://example.com그들이 사용하지 않으면SNI.
따라서 다음과 같아야 합니다.
<VirtualHost _default_:443>
SSLEngine on
SSLCertificateFile /etc/apache2/ssl-keys/example/example.crt
SSLCertificateKeyFile /etc/apache2/ssl-keys/example/example.key
SSLCACertificateFile /etc/apache2/ssl-keys/example/COMODO_EV_SSL.ca-bundle.crt
SSLProtocol -ALL -SSLv3 +TLSv1
SSLCipherSuite ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM
Redirect 404 /
</VirtualHost>
SNI가 없는 클라이언트에 대해 걱정하지 않는다면(요즘에는 그런 클라이언트가 거의 없음) 동일한 IP에 서로 다른 TLS 인증서가 있는 https 웹사이트를 얼마든지 가질 수 있습니다. 가상 SSL 호스팅의 제한은 SNI가 아닌 클라이언트가 인증서가 제공되기 전에 액세스하려는 가상 호스트를 SSL 계층에 알리지 않는다는 사실 때문입니다.