Ssl

Virtualhost1 SSL 影響 Virtualhost2 Aliase SSL

  • January 8, 2021

我正在從 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 位置包含一個VirtualHostServerAlias *,以擁有一個“包羅萬象”的站點)。

因此,在您的情況下,所有ServerAlias行都不起作用(無論如何都不是您所期望的),因為您正在為具有“cert-2.domain.com,*.org.domain.com”的伺服器定義別名名稱,逗號,星號和所有。為此,當您詢問“anything.org.domain.com”時,Apache 會提供它遇到的第一個塊,因為該主機名未在配置中定義。

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