Я создаю систему, и мне нужно использовать один и тот же 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
для этого, может кто-нибудь показать мне пример?
Раньше было сложно использовать несколько сертификатов 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.