Перенаправить на «www» перед требованием ssl

Problem

У меня сейчас проблема гдеhttps://domain.com не перенаправляет наhttps://www.domain.com и показывает ненадежный сертификат SSL.

Это связано с тем, что является решением ruby-on-rails перенаправить на «www» перед force_ssl

Question

Есть ли способ перенаправить на домен www до того, как требование SSL вступит в силу?

Я использую PHP.

 Bruno07 июн. 2012 г., 12:02
возможный дубликатRedirect https to non-www and http to www
 williamcarswell07 июн. 2012 г., 12:59
@Bruno Посмотрел много случаев, но ни один не определяет ответ, который дал deceze
 Bruno07 июн. 2012 г., 13:20
Не уверен, что вы имеете в виду. Я мог бы более или менее скопировать / вставить ответ, который я дал на другой вопрос, чтобы ответить на ваш. (Более или менее так же, как то, что сказал де-децез; единственное, что он не сказал, - это то, что вы могли бы достичь того, что вы хотите, имея сертификат, действительный для обоих.) По этому поводу есть ряд вопросов. Вот еще один на SF:serverfault.com/a/360985/47187

Ответы на вопрос(3)

Лучшее решение, которое я нашел, это просто купить новый сертификат SSL с альтернативными именами субъектов, чтобы вы могли иметь www и non-www в одном сертификате, и оба действительны. Таким образом, вы можете безопасно перенаправитьhttps: // WWW на https: // прозрачно и без ошибок сертификата.

Решение Вопроса

HTTPS - это HTTP поверх TLS / SSL (см.RFC 2818), который сначала устанавливает соединение SSL / TLS перед отправкой любого трафика HTTP. Любое перенаправление (черезmod_rewriteпользовательский код PHP или другое) всегда будет применяться после установления соединения SSL / TLS.

В противном случае это будет проблемой безопасности, поскольку злоумышленник может переписать и перенаправить клиента до того, как сертификат будет проверен.

Если вы хотите перенаправить сhttps://domain.com вhttps://www.domain.com, сертификат получен заhttps://domain.com должен быть действителен дляdomain.com (а затем сертификат, полученный дляhttps://www.domain.com должен быть действителен дляwww.domain.com).

(Вы можете использовать два разных сертификата с указанием имени сервера, если два хоста обслуживаются на одном IP-адресе, но это довольно запутанно.)

Проще всего было бы получить сертификат, который действителен для обоихdomain.com а такжеwww.domain.com, Это можно сделать с помощью одного сертификата с несколькими записями альтернативных имен субъектов. Большинство ЦС должны иметь возможность выдавать такие сертификаты. Некоторые делают это без дополнительной платы.

Ответ перенаправления выдается по протоколу HTTP. Чтобы получить такой ответ / команду, клиент сначала должен установить соединение HTTP. Если клиент пытается установить соединение HTTP_S_, тогда согласование SSL необходимо сначала завершить.

Другими словами, нет. URLhttps://domain.com недействительно для вашего приложения. Ни один клиент не должен даже знать об этом конкретном адресе и, следовательно, не должен пытаться получить к нему доступ. Вам не следует указывать этот URL-адрес в любом месте, чтобы клиенты не пытались получить к нему доступ. На самом деле, вы, похоже, не хотите запускать сервер HTTPS для этого домена, поэтому вам следует отключить его, чтобы клиенты не могли подключиться к нему.domain.com через HTTPS вообще.

Ваш ответ на вопрос