Ssl
Virtualhost1 SSL 影響 Virtualhost2 Aliase SSL
我正在從 Virtualhost 為我的萬用字元子域載入 SSL 文件,但是第二個虛擬主機載入了第一個虛擬主機的 ssl 文件,並且瀏覽器報告 Invalid certificate 錯誤
這是配置
<VirtualHost *:443> ServerName cert-1.domain.com ServerAlias cert-1.domain.com,*.net.domain.com DocumentRoot /home/myuser/public_html ServerAdmin webmaster@domain.com UseCanonicalName Off <IfModule mod_suphp.c> suPHP_UserGroup myuser myuser </IfModule> <IfModule suexec_module> <IfModule !mod_ruid2.c> SuexecUserGroup myuser myuser </IfModule> </IfModule> <IfModule ssl_module> SSLEngine on SSLCertificateFile /etc/letsencrypt/live/cert-1.domain.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/cert-1.domain.com/privkey.pem </IfModule> </VirtualHost> <VirtualHost *:443> ServerName cert-2.domain.com ServerAlias cert-2.domain.com,*.org.domain.com DocumentRoot /home/myuser/public_html ServerAdmin webmaster@domain.com UseCanonicalName Off <IfModule mod_suphp.c> suPHP_UserGroup myuser myuser </IfModule> <IfModule suexec_module> <IfModule !mod_ruid2.c> SuexecUserGroup myuser myuser </IfModule> </IfModule> <IfModule ssl_module> SSLEngine on SSLCertificateFile /etc/letsencrypt/live/cert-2.domain.com-2/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/cert-2.domain.com-2/privkey.pem </IfModule> </VirtualHost>
但是當我訪問anything.org.domain.com 時,它會載入第一個虛擬主機的SSL 文件,而不是第二個虛擬主機的SSL 文件,
即使我嘗試了不在第一個或第二個虛擬主機中的子域,它仍然會載入第一個虛擬主機 SSL 文件,並且瀏覽器會拋出 Invalid SSL 錯誤。
我該如何解決這個問題,
謝謝
伺服器別名應該用空格而不是逗號分隔,所以你的
ServerAlias
行應該是這樣的:ServerAlias cert-1.domain.com *.net.domain.com
請注意,
ServerAlias
可以在單個塊中給出更多指令,這使得配置在有許多別名的情況下更具可讀性。如果您請求一個不存在顯式配置的主機,Apache 會為它找到的第一個塊提供服務(這就是為什麼最好在 las 位置包含一個
VirtualHost
塊ServerAlias *
,以擁有一個“包羅萬象”的站點)。因此,在您的情況下,所有
ServerAlias
行都不起作用(無論如何都不是您所期望的),因為您正在為具有“cert-2.domain.com,*.org.domain.com”的伺服器定義別名名稱,逗號,星號和所有。為此,當您詢問“anything.org.domain.com”時,Apache 會提供它遇到的第一個塊,因為該主機名未在配置中定義。