簡體   English   中英

HTTPS並在AWS Elastic beantalk上路由www.domain.com-> domain.com(適用於chrome,但不適用於Safari)

[英]HTTPS and route www.domain.com -> domain.com on AWS elastic beanstalk (works with chrome, but not safari)

我有一個在AWS上運行的彈性beantalk實例(沒有負載均衡器)。

通過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

我真的是Web服務的新手。 我在這里做錯了什么?

  • 我是否需要安裝兩個證書,一個用於domain.com,一個用於www.example.com? 根據上面的教程,我該怎么做?
  • 我可以通過其他方式將流量從www.example.com重新路由到example.com,這樣就不需要其他證書了嗎?
  • 還是我還是在www.example.com上犯了一個基本錯誤,我既不需要www又需要非www嗎?

感謝您的幫助。

您可以嘗試在https重寫之前添加第二個重寫條件。 如果網址以www.開頭www. 然后將網址重寫為https://example.com ,刪除www.

這樣可以避免在包含www.同時將您的URL重定向到https www. 您的SSL並未涵蓋。

使用上面已鏈接的教程,您的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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM