Назад | Перейти на главную страницу

Есть ли способ получить доступ к 'mod_rewrite' перед 'mod_ssl'?

Сценарий:

У меня 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-адреса.