Apache-2.2

如何在沒有 SSL 證書的情況下執行虛擬主機 443?

  • May 27, 2017

如果輸入了無效的子域,我有一個 virtualhost 指令會提供自定義 404 錯誤:

<VirtualHost *:80> # the first virtual host
 ServerName site_not_found
 RedirectMatch 404 ^/(?!custom_error)
</VirtualHost>

<VirtualHost *:80>
 ServerName example.com
 ServerAlias ??.example.com
</VirtualHost>

我想設置一個虛擬主機以通過 HTTPS 連接顯示相同的自定義錯誤。我嘗試了以下方法:

<VirtualHost *:443> # the first virtual host
 ServerName site_not_found
 RedirectMatch 404 ^/(?!custom_error)
</VirtualHost>

<VirtualHost *:443>
 ServerName example.com
 ServerAlias ??.example.com
# SSL options, other options, and stuff defined here.
</VirtualHost>

但是伺服器無法啟動並發出錯誤:

伺服器應支持 SSL,但未配置證書

$$ Hint: SSLCertificateFile $$((空):0)

即使沒有為此虛擬主機打開 SSLEngine,似乎也需要 SSL 證書。除了提供證書之外,有沒有辦法解決這個問題?關閉模組不是一個選項,因為我需要虛擬伺服器 example.com 的 SSL。

即使沒有為此虛擬主機打開 SSLEngine,似乎也需要 SSL 證書。除了提供證書之外,有沒有辦法解決這個問題?

否 - 當您的瀏覽器包含https在 URL 中時,它希望使用 SSL。沒有,它會失敗。Apache 很高興告訴您這一點,否則您會遇到一些難以理解的瀏覽器錯誤。因此,您需要先在 Apache 中配置 SSL,然後才能使用 port 443

如果您不希望瀏覽器警告它是錯誤的 SSL 證書,則需要從證書頒發機構購買一個。您可以從https://cert.startcom.org/獲得一個免費的,它在越來越多的地方被接受,但可能沒有與付費的相同水平的認可(尤其是在舊機器中)。我將它用於我的開發站點並且還沒有看到關於它們不受信任的警告,但是我再次只使用相對較新的作業系統/瀏覽器。

引用自:https://serverfault.com/questions/433208