Junzizhiai 2020-10-10
在启用 SSL 后,我们也希望将主域名重定向到 www。
希望实现的操作是,当用户访问 https://cwikius.cn 的时候,浏览器应该能够自动重定向到 https://www.cwikius.cn。
如果我们按照 80 端口的 http 配置的,你可能会得到浏览器的安全配置。
比如说,我们最开始的配置是:
# --- CWIKIUS.CN --- <VirtualHost *:443> ServerName cwikius.cn Redirect 301 / https://www.cwikius.cn/ </VirtualHost>
当我们访问的时候,浏览器会提示连接的 SSL 问题。
这是因为如果你在 HTTPS 的 SSL 中也这样配置是不允许的。因为这个可能会导致安全性问题和攻击。
在 HTTPS 建立连接之前,浏览器会首先校验你的证书,如果你的证书有问题,或者没有配置,浏览器是不会给你重定向。
因此你需要修改上面的参数配置为:
# --- CWIKIUS.CN --- <VirtualHost *:443> ServerName cwikius.cn SSLEngine on SSLProtocol ALL -SSLv2 -SSLv3 SSLCertificateFile 证书存储的绝对路径 SSLCertificateKeyFile 证书存储的绝对路径 SSLCertificateChainFile 证书存储的绝对路径 Redirect 301 / https://www.cwikius.cn/ </VirtualHost>
通过上面的配置,你的 HTTPD 和浏览器在校验证书完成后给你的访问重定向了。
简单来说,出现这个问题的原因就是 SSL 必须在校验证书完成后才能进行下一步的操作,不管是重定向还是访问网站。