我在AWS上运行了一个弹性beanstalk实例(没有负载均衡器)。
通过Route 53,我有一个别名,从我的域名“example.com”和“www.example.com”到Elastic Beanstalk实例。 工作得很好。
我还按照本教程中的每个http请求重新路由到https: https://blog.lucasferreira.org/howto/2017/07/21/set-up-let-s-encrypt-ssl-certificate-with-aws-elastic-beanstalk-single-instance.html
现在奇怪的是,如果进入Chrome浏览器“www.example.com”或“example.com”,一切正常,它会被转发到“https://example.com”。 如果我在Safari和Firefox中执行相同的操作,我会收到一条错误消息,指出https://www.example.com“此连接不是私有的”。 原因是证书适用于domain.com,但不适用于www.example.com
我是网络服务的新手,真的。我在这里做错了什么?
非常感谢您的帮助。
答案 0 :(得分:0)
您可以尝试在https重写之前添加第二个重写条件。如果网址以www.
开头,则将网址重写为https://example.com
,删除www.
这可以避免将您的网址重定向到https,同时包含SSL未涵盖的www.
。
使用您上面链接的教程,您的VirtualHost配置将如下所示:
<VirtualHost *:80>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>