2

В настоящее время у меня есть сервер с поддоменом DynDNS (назовем его foo.dyn.com). У меня также есть правильный домен с CNAME, указывающим на этот поддомен (назовем его bar.baz.com). foo.dyn.com имеет самозаверяющий SSL-сертификат, в то время как bar.baz.com имеет надлежащий CA-подписанный SSL-сертификат.

Я настроил Apache для перенаправления не-ssl-запросов для любого домена на https://bar.baz.com , что прекрасно работает. Моя проблема заключается в следующем: я хочу, чтобы любой, кто пытается получить доступ к https://foo.dyn.com был перенаправлен на https://bar.baz.com . Я пробовал 2 решения, и ни одно из них не совсем правильно:

  1. Имейте 1 VirtualHost, используя сертификат CA. Это очевидное предупреждение о том, что домен использует неправильный сертификат, когда кто-то пытается получить доступ к https://foo.dyn.com .
  2. Имейте 2 VirtualHosts, один для foo.dyn.com с самозаверяющим сертификатом и один для bar.baz.com, используя соответствующий сертификат. На foo.dyn.com есть пункт перенаправления, который перенаправляет весь трафик на https://bar.baz.com , который работает, за исключением того, что вы все еще получаете предупреждение о самозаверяющем сертификате. Кроме того, некоторые HTTP-клиенты, не являющиеся веб-браузерами (например, wget), получают сертификат foo.dyn.com при указании на bar.baz.com.

Есть ли способ, которым я могу обойти эту проблему?

2 ответа2

1

Это проблема в стеке протоколов. Вы можете иметь только один SSL-сертификат на каждый IP-порт.

Причина в следующем: система Apache и тому подобное VirtualHost основана на HTTP-заголовке хоста. Однако этот заголовок отправляется после установления SSL-соединения (так как все заголовки отправляются после установления SSL-соединения, иначе это будет бесполезно).

Таким образом, единственное средство, которым сервер должен выбрать сертификат, основано на интерфейсе или IP-адресе, по которому происходит соединение и порт.

Решением для предупреждения было бы добавить ваш второй домен как SubjectAltName к сертификату.

0

Вы можете использовать указание имени сервера, если ваши клиенты его поддерживают. (Смотрите этот ответ на SO для ссылок.)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .