Virtualhost1 SSL влияет на Virtualhost2 Aliase SSL

Virtualhost1 SSL влияет на Virtualhost2 Aliase SSL

Я загружаю файлы SSL для моих поддоменов wildcard с Virtualhost, но второй виртуальный хост загружает файл SSL первого виртуального хоста, и браузер выдает ошибку «Недействительный сертификат».

Вот конфигурация

    <VirtualHost *:443>
     ServerName cert-1.domain.com 
     ServerAlias cert-1.domain.com,*.net.domain.com 
    DocumentRoot /home/myuser/public_html
     ServerAdmin [email protected]

     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 [email protected]

     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-файл первого виртуального хоста, и браузер выдает ошибку Invalid SSL.

Как мне решить эту проблему?

Спасибо

решение1

Псевдонимы серверов должны быть разделены пробелом, а не запятой, поэтому ваша ServerAliasстрока должна выглядеть следующим образом:

ServerAlias cert-1.domain.com *.net.domain.com

Обратите внимание, что в одном блоке можно задать больше ServerAliasдиректив, что делает конфигурацию более читабельной в случае большого количества псевдонимов.

Если вы запрашиваете хост, для которого не существует явной конфигурации, Apache обслуживает первый найденный блок (именно поэтому хорошей идеей является включение блока VirtualHostв ServerAlias *последнее место, чтобы иметь сайт «всеобъемлющего» типа).

Итак, в вашем случае ни одна из ServerAliasстрок не работает (во всяком случае, не так, как вы ожидаете), поскольку вы определяете псевдоним для сервера, который будет иметь имя "cert-2.domain.com,*.org.domain.com" с запятой, звездочкой и всем остальным. Для этого, когда вы запрашиваете "anything.org.domain.com", Apache обслуживает первый блок, который он встречает, поскольку это имя хоста не определено в конфигурации.

Связанный контент