【问题标题】:HTTPS and route www.domain.com -> domain.com on AWS elastic beanstalk (works with chrome, but not safari)AWS 弹性 beanstalk 上的 HTTPS 和路由 www.domain.com -> domain.com(适用于 chrome,但不适用于 safari)
【发布时间】:2018-10-26 04:43:54
【问题描述】:

我有一个在 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 中执行相同操作,我会收到一条错误消息,指出 "This connection is not private" for https://www.example.com" 。 原因是证书适用于 domain.com,而不适用于 www.example.com

我是网络服务的新手,真的。我在这里做错了什么?

  • 我是否需要安装两个证书,一个用于 domain.com,一个用于 www.example.com?根据上面的教程,我将如何做到这一点?
  • 我能否以其他方式将流量从 www.example.com 重新路由到 example.com,这样我就不需要其他证书了?
  • 还是我犯了一个基本的错误 w.r.t.无论如何 www.example.com,我不应该同时需要 www 和非 www?

非常感谢您的帮助。

【问题讨论】:

    标签: amazon-web-services https amazon-elastic-beanstalk


    【解决方案1】:

    您可以尝试在 https 重写之前添加第二个重写条件。如果 url 以 www. 开头,则将 URL 重写为 https://example.com,删除 www.

    这样可以避免将您的 URL 重定向到 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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-15
      • 1970-01-01
      • 2015-09-16
      • 1970-01-01
      • 2019-01-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多