Wildcard SSL с несколькими доменами

У меня есть CentOS/Apache+OpenSSL сервер. Я размещаю два доменных имени с поддоменными поддоменами (логика приложения отображает правильный сайт), например

https: //*.testing1.com

https: //*.testing2.com

Он отлично работает по HTTP:-

   <VirtualHost *:80>
  # Admin email, Server Name (domain name) and any aliases
  ServerAdmin webmaster@testing1.com
  ServerName  testing1.com
  ServerName  testing2.com

  ServerAlias *.testing1.com *.testing2.com

  # Index file and Document Root (where the public files are located)
  DirectoryIndex index.html index.php
  DocumentRoot /home/app/public_html/public

</VirtualHost>

Я купил два сертификата Wildcard SSL, сертифицированных как для testing1.com, так и для test2.com, но я не уверен, как настроить их в этой структуре: -

    <VirtualHost *.testing1.com:443>
     SSLEngine On
     SSLCertificateFile /etc/httpd/ssl/*.testing1.com.crt
     SSLCertificateKeyFile /etc/httpd/ssl/*.testing1.com.key
     SSLCACertificateFile /etc/httpd/ssl/geotrust.cer

     ServerAdmin john@testing1.com
     ServerName testing1.com
     ServerAlias *.testing1.com

        DirectoryIndex index.html index.php
        DocumentRoot /home/app/public_html/public

  </VirtualHost>

   <VirtualHost *.testing2.com:443>
     SSLEngine On
     SSLCertificateFile /etc/httpd/ssl/*.testing2.com.crt
     SSLCertificateKeyFile /etc/httpd/ssl/*.testing2.com.key
     SSLCACertificateFile /etc/httpd/ssl/geotrust.cer

     ServerAdmin john@testing2.com
     ServerName testing2.com
     ServerAlias *.testing2.com

        DirectoryIndex index.html index.php
        DocumentRoot /home/app/public_html/public

  </VirtualHost>

Вышеупомянутое для SSL не работает ни с определением *.testing1.com, ни только с testing1.com.

Мне также нужно будет повторить это для testing2.com

2 ответа

Решение

Виртуальные хосты на основе имен и SSL будут работать только в том случае, если все виртуальные хосты находятся в одном домене, и у вас есть сертификат SSL с подстановочным знаком для этого домена.

Но у вас есть 2 разных домена.

В этом случае он будет работать только в том случае, если вы предоставите каждому виртуальному хосту с включенным SSL свой IP-адрес. Поэтому вы должны использовать виртуальные хосты на основе IP, а не на основе имен.

Объяснение: Запрашиваемое имя_сервера содержится в заголовках HTTP-запроса, но перед этим должно быть уже настроено шифрование SSL. Таким образом, имя_сервера доступно только после настройки шифрования. Поэтому Apache никогда не узнает, какой SSL-сертификат выдан, и просто использует первый, доступный для данного IP-адреса.

С помощью одного выделенного IP-адреса мы можем настроить доменный SSL-символ подстановки на сервере centos + apache2.2.

Надеюсь, что приведенные ниже конфигурации помогут вам, ребята!

NameVirtualHost IP:80
NameVirtualHost IP:443

Домен 1

<VirtualHost IP:80>
        ServerName      abc.domain1.com
        DocumentRoot    /var/www/html/domain1
</VirtualHost>
<VirtualHost IP:443>
        ServerName      *.domain1.com
        DocumentRoot    /var/www/html/domain1
        SSLEngine       On
        SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
        SSLCertificateFile      /var/www/html/domain1/cert/5465456.crt
        SSLCertificateKeyFile   /var/www/html/domain1/cert/domain1.com.key
        SSLCertificateChainFile /var/www/html/domain1/cert/g2-g1.crt
</VirtualHost>

Домен 2

<VirtualHost IP:80>
        ServerName      abc.domain2.com
        DocumentRoot    /var/www/html/domain2
</VirtualHost>
<VirtualHost IP:443>
        ServerName      abc.domain2.com
        DocumentRoot    /var/www/html/domain2
        SSLEngine       On
        SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
        SSLCertificateFile      /var/www/html/domain2/cert/5465456.crt
        SSLCertificateKeyFile   /var/www/html/domain2/cert/domain1.com.key
        SSLCertificateChainFile /var/www/html/domain2/cert/g2-g1.crt
</VirtualHost>
Другие вопросы по тегам