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

Как разместить основной домен с одним сертификатом, поддомены с другим сертификатом подстановки на одном экземпляре apache

Я искал в SF и понял из Другой сообщения что с TSL можно иметь несколько сертификатов SSL / TSL для разных поддоменов на одном экземпляре Apache. Мне интересно, могу ли я разместить основной домен с одним сертификатом и поддомены того же основного домена с отдельным сертификатом с подстановочными знаками.

Я работаю над сайтом, который в основном работает на английском языке. Когда люди посещают www.example.com, у нас есть правило mod_rewrite, которое перенаправляет их на example.com. Он также перенаправляет простые старые HTTP-запросы на HTTPS. У нас есть сервер, настроенный с действительно хорошим сертификатом расширенной проверки (EV), который окрашивает адресную строку вашего браузера в зеленый цвет - он выглядит довольно безопасным и заслуживающим доверия.

Проблема в том, что мы хотим отображать другие языки на других поддоменах. Например.:

Наш сертификат расширенной проверки недействителен для этих поддоменов, поэтому мы приобрели сертификат с подстановочными знаками и хотели бы настроить apache, чтобы он использовал сертификат EV для запросов HTTPS для example.com и сертификат с подстановочными знаками для запросов HTTPS ко всем языковым поддоменам.

Я понимаю из этот документ поддержки digicert и сообщение serverfault что Apache 2.4.18 должен поддерживать использование нескольких сертификатов SSL для разных доменов. если HTTPS-соединения выполняются с использованием TSL но не если они сделаны с использованием SSL. В документе digicert предлагается создать полностью отдельный раздел VirtualHost, по одному для каждого сертификата, но мне интересно, есть ли другие тонкости, которые мне не хватает. В нашем текущем apache conf, например, отсутствует директива ServerName, и я не уверен, нужно ли мне создавать директиву ServerAlias ​​для каждого поддерживаемого языка или мы можем использовать подстановочный знак в этих конфигурациях apache? Кроме того, субдомены (en.example.com) представляют собой суперстроку основного домена (example.com) - я беспокоюсь, что это может вызвать путаницу при маршрутизации запросов?

В настоящее время наша единственная apache SSL conf на /etc/apache2/sites-available/default-ssl.conf выглядит так, если убрать все комментарии:

<IfModule mod_ssl.c>
    <VirtualHost _default_:443>
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html
        ProxyPassMatch ^/(.*\.php(/.*)?)$ unix:/run/php/php7.0-fpm.sock|fcgi://localhost/var/www/html/
        SetEnv CI_ENV testing
        <Directory /var/www/html>
            AllowOverride All
        </Directory>
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
        SSLEngine on
            SSLCertificateFile      /etc/ssl/certs/ev-ssl-certificate.crt
            SSLCertificateKeyFile /etc/ssl/private/ev-private.key
            SSLCACertificateFile /etc/ssl/certs/ev-IntermediateCA.crt
        <FilesMatch "\.(cgi|shtml|phtml|php)$">
                SSLOptions +StdEnvVars
        </FilesMatch>
        <Directory /usr/lib/cgi-bin>
                SSLOptions +StdEnvVars
        </Directory>
    </VirtualHost>
</IfModule>

Может ли кто-нибудь сказать мне, каков наилучший подход в этой ситуации? В идеале мы будем копировать как можно меньше кода, чтобы это работало. Я также очень признателен за любые предупреждения или ошибки. Например, я подозреваю, что мне нужно отключить протоколы SSL, чтобы использовался только TSL.

Вы должны создать два файла виртуального хоста для хранения информации о виртуальном хосте в отдельных файлах, скопировав конфигурацию из файла виртуального хоста по умолчанию. Для получения дополнительной информации см. Как настроить несколько сертификатов SSL на одном IP-адресе с помощью Apache.

Насколько я понимаю, вы обрабатываете многоязычные сайты в качестве основного сайта на английском языке, а другие сайты на ограниченном языке в качестве поддоменов, вы хотите завоевать доверие клиентов, отображая зеленую полосу с брендом для всех ваших сайтов. Вы можете сделать это с помощью одного EV Многодоменный SSL-сертификат; это позволит включить название вашей компании в адресную строку браузеров для www.example.com, es.example.com, de.example.com и it.example.com. Некоторые примеры поставщиков: