Использование mod_rewrite для имитации виртуальных хостов SSL?

Каков наилучший способ прозрачной перезаписи URL через соединение SSL с Apache 2.2?

Apache 2 изначально не поддерживает несколько виртуальных хостов на основе имен для соединения SSL, и я слышал, что mod_rewrite может помочь с этим. Я хотел бы сделать что-то вроде этого:

Я настроил сервер так, чтобы сайты могли быть доступны

https://secure.example.com/dbadmin

но я хотел бы иметь это как https://dbadmin.example.com

Как настроить его так, чтобы правило перезаписи переписывало dbadmin.example.com в secure.example.com/dbadmin, но без отображения перезаписи в адресной строке клиента (т. Е. Клиент по-прежнему будет просто видеть dbadmin.example.com ) по всему https?

12.08.2008 00:06:36
3 ОТВЕТА
РЕШЕНИЕ

Сконфигурируйте один VirtualHost для обслуживания и secure.example.com, и dbadmin.example.com (что делает его единственным *: 443 VirtualHost достигает этого). Затем вы можете использовать mod_rewrite, чтобы настроить URI для запросов к dbadmin.example.com:

<VirtualHost *:443>
    ServerName secure.example.com
    ServerAlias dbadmin.example.com

    RewriteEngine on
    RewriteCond %{SERVER_NAME} dbadmin.example.com
    RewriteRule !/dbadmin(.*)$ /dbadmin$1
</VirtualHost>

Ваш SSL-сертификат должен быть действительным как для secure.example.com, так и для dbadmin.example.com. Это может быть подстановочный сертификат, как упомянул Терри Лорбер, или вы можете использовать поле subjectAltName для добавления дополнительных имен хостов.

Если у вас возникли проблемы, сначала установите его <VirtualHost *>и убедитесь, что он работает без SSL. SSL-соединение и сертификат - это отдельный уровень сложности, который вы можете настроить после того, как работает перезапись URI.

3
15.08.2008 08:40:41

Существует apache mod_rewrite, или вы можете настроить apache для направления https://dbadmin.example.com к пути / to / example.com / dbadmin на сервере.

<VirtualHost *>
ServerName subdomain.domain.com
DocumentRoot /home/httpd/htdocs/subdomain/
</VirtualHost>
0
12.08.2008 01:12:14

Если ваш SSL-сертификат не является подстановочным или многосайтовым, то я не думаю, что это сработает. Перезапись будет отображаться в браузере, а имя в адресной строке должно быть действительным по отношению к сертификату, иначе ваши пользователи увидят ошибку безопасности (которую они всегда могут принять и продолжить, но это не похоже на то, что вам нужно ).

Больше здесь .

2
12.08.2008 02:10:56