Apache Несколько доменов и несколько SSL на один IP и папку

Я создаю систему, и мне нужно использовать один и тот же IP и одну и ту же папку для сайта с несколькими доменами и отдельным SSL-сертификатом для каждого. Также я не хочу, чтобы они перенаправляли или пересылали, потому что сайт может обрабатывать различные домены самостоятельно.

вот так

site1.example.com 192.168.0.2:443 /var/www/html

site2.example.com 192.168.0.2:443 /var/www/html

site3.example.com 192.168.0.2:443 /var/www/html

site4.example.com 192.168.0.2:443 /var/www/html

Я использую Ubuntu 14.04 с Apache2. Я понятия не имею, как должен выглядеть файл hosts для этого, может кто-нибудь показать мне пример?

0
04.07.2018, 21:34
1 ответ

Раньше было сложно использовать несколько сертификатов SSL на нескольких сайтах, размещенных на одном IP-адресе. Из-за этого администраторам веб-сайтов необходимо вкладывать больше денег в покупку отдельных IP-адресов. Однако теперь с помощью SNI (индикатора имени сервера) можно защитить несколько сайтов с помощью разных сертификатов SSL по единому интернет-протоколу на Apache.

Настройте SNI с Apache:

Сначала сделайте новую резервную копию вашего .conf

Теперь, чтобы реализовать вышеупомянутые функции, вам необходимо создать виртуальный хост на вашем сервере. Создайте новый файл .conf для нового виртуального хоста или вы можете использовать существующий. Если вы создаете новый файл .conf, вам необходимо добавить следующую строку в существующий файл .conf.

Include my_other_site.conf

Теперь укажите ваши общедоступные IP-адреса в директиве NameVirtualHost, используя порт *: 443. После этого вам необходимо указать корневой сертификат, промежуточный сертификат и файл SSL для каждого веб-сайта. Для получения дополнительных сведений ознакомьтесь с приведенным ниже примером:

NameVirtualHost *:443

<VirtualHost *:443>
 ServerName site1.domain.com 
 DocumentRoot /var/www/site
 SSLEngine on
 SSLCertificateFile /path/to/site1_domain_com.crt
 SSLCertificateKeyFile /path/to/site1_domain_com.key
 SSLCertificateChainFile /path/to/CA.crt
</VirtualHost>

<VirtualHost *:443>
 ServerName site2.domain.com
 DocumentRoot /var/www/site2
 SSLEngine on
 SSLCertificateFile /path/to/site2_domain_com.crt
 SSLCertificateKeyFile /path/to/site2_domain_com.key
 SSLCertificateChainFile /path/to/CA.crt
</VirtualHost>

Это должно работать правильно, но, на мой взгляд, вам не следует использовать разные сертификаты SSL для разных сайтов, когда вы можете получить один SSL SAN (Subject Alternative Names), поскольку вы можете защитить несколько сайтов с помощью одного сертификата. И если у вас есть только поддомены, которые нужно защитить в одном домене, вы можете просто выбрать Wildcard SSL, что может быть экономически эффективным вариантом. Вам просто нужно выпустить подстановочный сертификат как *. Domain.com , и все (только первый уровень) вместо звездочки (*) будет охвачено.

Как Wildcard SSL, так и сертификат SAN снизят стоимость, а также уменьшат проблемы с управлением.Прочтите эту статью , если хотите понять разницу между Wildcard SSL и SAN.

0
28.01.2020, 04:48

Теги

Похожие вопросы