我有一个网站(比如example.com),在LAMP设置上运行,带有来自Mozilla批准的CA的CA签名证书。
我希望所有流量都转到https://www.example.com,以便搜索引擎正确汇总链接和用户体验,以便与所有客户端(Chrome桌面,Safari移动设备等)保持一致。
因此,如果用户请求:
http://example.com
http://www.example.com
https://example.com
所有这些都会重定向到https://www.example.com。
根据Apache documentation,使用虚拟主机执行此操作的简单且最安全的方法。所以我在我的httpd conf中设置了以下虚拟主机设置:
<VirtualHost *:80>
ServerName www.example.com
ServerAlias example.com
Redirect 301 / https://www.example.com/
</VirtualHost>
<VirtualHost *:443>
ServerName www.example.com
ServerAlias example.com
# ... SSL configuration goes here
SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/example.crt
SSLCertificateKeyFile /etc/pki/tls/private/example.key
SSLCACertificateFile /etc/pki/tls/certs/example-bundle.crt
</VirtualHost>
在桌面上的Chrome和Firefox上,这具有预期的效果。所有流量都成功发送到https://www.example.com,并且已识别CA签名证书(无浏览器警告)。
但是,在Chrome移动版上,我收到了ERR_CERT_AUTHORITY_INVALID消息。另外,我有Twilio点击这项服务,我从Twilio服务收到同样的错误。
鉴于上述情况,我的两个关键问题是: