Сценарий:
У меня 2 домена: thinkingmonkey.me
& thinkingmonkey.com
. Доступ ко всему сайту осуществляется через https
. Купил сертификат в ЦС с общим именем thinkingmonkey.me
.
Для http
:
www.thinkingmonkey.com, thinkmonkey.com & www.thinkingmonkey.me иметь один виртуальный хост и перенаправляться на https://thinkingmonkey.me используя правила _mod_rewrite_.
thinkmonkey.me имеет отдельный виртуальный хост.
Все нормально работает.
То же самое и для https
:
т.е. www.thinkingmonkey.com, thinkmonkey.com & www.thinkingmonkey.com иметь один виртуальный хост и перенаправляться на https://thinkingmonkey.me используя правила _mod_rewrite_.
thinkmonkey.me имеет отдельный виртуальный хост.
Эта проблема
- Сейчас если https://www.thinkingmonkey.com или https://thinkingmonkey.com доступен,
- mod_ssl действует, и рукопожатие TLS происходит до mod_rewrite переписывается на https://thinkingmonkey.me.
- Поскольку общее имя в сертификате находится под thinkmonkey.me, Это соединение ненадежно предупреждение отображается в браузере.
- Если я не завершу рукопожатие, приняв сертификат, он не будет перенаправлен на thinkmonkey.me. Что очень раздражает.
Так,
Есть ли способ получить доступ mod_rewrite
перед mod_ssl
?
или
Нужно ли покупать отдельный сертификат, чтобы от этого избавиться?
Нет, HTTPS - это HTTP через TLS / SSL (см. RFC 2818), который сначала устанавливает соединение SSL / TLS перед отправкой любого HTTP-трафика. mod_rewrite
всегда будет применяться после установления соединения SSL / TLS.
Невыполнение этого требования фактически будет проблемой безопасности, поскольку злоумышленник может переписать и перенаправить клиента до того, как сертификат будет проверен. Даже если обновление TLS было в рамках HTTP (RFC 2817, который практически никогда не используется / не поддерживается и не https
), вы все равно захотите, чтобы перенаправление происходило от доверенного объекта.
Чтобы решить эту проблему, используйте сертификат с несколькими DNS-записями альтернативного имени субъекта (SAN), по одной для каждого имени хоста, или несколько сертификатов (в этом случае вам также может понадобиться один IP-адрес для каждого сертификата, если вы не хотите использовать Индикация имени сервера).
Нет, это невозможно. Рассмотрите возможность получения Сертификат SAN это включает оба имени. Если вы получите 2 сертификата, вам понадобится 2 IP-адреса.