Назад | Перейти на главную страницу

Выберите сертификат SSL на основе доменного имени без отдельных VHosts

Я работаю с многосайтовой сетью WordPress, которая имеет различные доменные имена верхнего уровня. В настоящее время мы обслуживаем их всех с помощью одного виртуального хоста:

<VirtualHost *:80>
        ServerName example.com
        ServerAlias *
        DocumentRoot /var/www/html/example.com/public
</VirtualHost>

С участием Давайте зашифровать в этом году мы хотим предложить нашим клиентам бесплатный HTTPS. Используя этот сервис, мы сможем автоматически получать сертификат для каждого домена. Я хотел бы иметь возможность настроить Apache для поиска сертификатов в определенной папке, чтобы нашему автоматическому сценарию не нужно было изменять конфигурацию Apache при добавлении нового сертификата.

<VirtualHost *:443>
    DocumentRoot /var/www/html/example.com/public
    ServerName example.com
    ServerAlias *

    SSLEngine on

    # This line should find the cert that corresponds to the requested domain
    SSLCertificateFile /etc/pki/tls/certs/*.crt

    SSLCertificateKeyFile /etc/pki/tls/private/example_com.key
    SSLCertificateChainFile /etc/pki/tls/certs/example_com.ca-bundle
</VirtualHost>

Можно ли настроить Apache для выбора правильного сертификата для запрошенного домена без необходимости отдельных виртуальных хостов или изменения конфигурации для каждого из них?

Мы открыты для переключения версий Apache или установки известного модуля Apache, если это необходимо.

Я не могу поручиться за безопасность такой системы, так как она будет зависеть от комбинации безопасности вашего сервера и автоматизированного сценария в дополнение к безопасной конфигурации Apache, но это не выходит за рамки вероятности того, что это может быть развернут.

Вам необходимо настроить отдельные виртуальные хосты с указанием имени сервера (SNI). У вас должен быть виртуальный хост по умолчанию, настроенный как универсальный, и для настройки поддержки протокола (в настоящее время для всего сайта используются только протоколы, установленные на виртуальном хосте по умолчанию). Другие виртуальные хосты могут быть настроены в отдельных файлах конфигурации с отдельными закрытыми ключами и сертификатами, возможно, для каждого каталога. Если вы находитесь на сервере Unix, вы можете использовать единственный каталог, содержащий программные ссылки на файлы конфигурации, чтобы помочь Apache найти их. Вам нужно будет обратить особое внимание на права доступа к файлам и структуру каталогов.