Apache-Virtualhost

Apache:2 個 SSL 證書,相同的 DocumentRoot

  • November 13, 2019

我已經配置了我的站點apache,現在我正在嘗試正確設置重定向。

我的網站使用萬用字元 SSL 認證,我的 ssl 證書涵蓋 *.mydomain.com。我的證書提供者僅涵蓋一級子域。我的站點 URL 是https://level1.mydomain.com,但我想將訪問 https://www.level1.mydomain.com 的使用者重定向https://level1.mydomain.com。我設置了從 www.level1 到 level1 的重定向,但是當我在瀏覽器上鍵入https://www.level1.mydomain.com時,我得到了

This server could not prove that it is www.level1.mydomain.com; its security certificate is from *.mydomain.com. This may be caused by a misconfiguration or an attacker intercepting your connection.

據我了解,原因是 www.level1 是一個 level2 子域,而我的萬用字元不包括這一點。

我需要做什麼?為 www.level1 購買另一個證書?如果是,我應該如何配置虛擬主機,使兩個證書都指向同一個 DocumentRoot 文件夾?

謝謝你。

AFAIK,如果您只是輸入

www.level1.mydomain.com

進入您的瀏覽器地址欄,您在埠 80 http 協議上請求 mydomain.com 網路伺服器。對於 http,您不需要證書。

如果你輸入

https://www.level1.mydomain.com

您在需要證書的埠 443 / https 上詢問。

如果你輸入

level1.mydomain.com

並且僅將您的網路伺服器配置為與 https/443 一起使用,您將收到一條錯誤消息,網路伺服器未偵聽埠 80(502 網關錯誤 - 或其他)。

您需要為所有在埠 80/http 上偵聽到 https 的域/虛擬主機添加重定向/重寫。這很容易 - 不需要證書 -

像這樣(未經測試)

<VirtualHost *:80>
  ServerName level1.mydomain.com       
  Redirect / https://level1.mydomain.com
</VirtualHost>

<VirtualHost *:80>
  ServerName  www.level1.mydomain.com
  Redirect / https://level1.mydomain.com
</VirtualHost>

對於所有輸入的使用者

https://www.level1.mydomain.com

您需要為此 sub.sub.domain 購買額外的證書或獲得免費的letsencrypt.org 證書,以進行重定向。也許不值得麻煩。

順便說一句,添加第二個虛擬主機指向同一個 DocumentRoot 可以用於純 HTML 頁面,但不適用於應用程序。我會選擇重定向。

關於重定向/重寫的教程

https://www.tecmint.com/redirect-http-to-https-on-apache/

關於letsencrypt

https://letsencrypt.org/

引用自:https://unix.stackexchange.com/questions/552006