Я использую ubuntu 9.10, apache2 и php5. Является ли хорошей идеей размещать несколько сайтов SSL на одном IP-адресе, но на разных портах? Если да, то какие порты мне следует использовать?
Используйте любой порт, который вам нравится, но знайте, что это может вызвать некоторую путаницу у пользователей. Если вы хотите сделать это, настройте свой файл /etc/apache2/ports.conf и добавьте что-то вроде этого (порты являются частью сертификата):
<IfModule mod_ssl.c>
# SSL name based virtual hosts are not yet supported, therefore no
# NameVirtualHost statement here
NameVirtualHost *:443
Listen 443
NameVirtualHost *:442
Listen 442
</IfModule>
Затем отредактируйте / etc / apache2 / sites-enabled / somefile, чтобы он выглядел примерно так:
<VirtualHost *:443>
ServerName blah1.site.com
more stuff here
</VirtualHost>
<VirtualHost *:442>
ServerName blah2.site.com
more stuff here
</VirtualHost>
Вы можете использовать mod_rewrite, чтобы скрыть порт, если это проблема.
Я бы сказал, что это не очень хорошая идея, поскольку существует ряд брандмауэров, настроенных как фильтр портов, которые намеренно пропускают 80 (http) и 443 (https) и блокируют другие. Или они контролируют, какие протоколы используются на других открытых портах. Таким образом, вы потеряете часть своей аудитории.
Еще один источник раздражения - ваши пользователи должен не забудьте ввести правильный номер порта, если они не хотят получать ошибку сертификата. То есть: если https://www.example.com:444/ правильно, https://www.example.com:445/ вызовет ошибку, если порт 445 использует сертификат для другого сайта.
Я никогда не пробовал этого, но считаю, что номер порта даже должен быть частью вашего сертификата.
В зависимости от вашего варианта использования вам может быть лучше использовать групповой сертификат, удостоверяющий * .example.com, и вы можете управлять любым количеством поддоменов с этим сертификатом. Если вы масштабируете, вы можете использовать это на сколь угодно большем количестве хостов, если они доступны как https://anysubdomain.example.com/.