if ($http_host != "www.example.com") {
rewrite ^ $scheme://www.example.com$request_uri permanent;
}
Таким образом при обращении к https://example.com редирект на https://www.example.com не происходит и, поскольку сертификат сгенерирован для *.example.com, браузер ругается.
if ($http_host != "www.example.com") {
rewrite ^ https://www.example.com$request_uri permanent;
}
Таким образом редирект происходит, но мне не надо все соединения перенаправлять на https. Где косяк?
Конфиг сервера http://pastebin.com/hhhdAW25
nginx 1.2.1
Собственно, редирект при первом варианте конфига срабатывает только тогда, когда в браузере жмешь игнорировать предупреждение.
После этого при последующих заходах по адресу https://example.com редирект происходит без предупреждений.
Как я понял, до nginx'а в случае с https не доходит запрос, т.к. браузер сначала проверяет сертификат. Следовательно, это никак не обойти и обязательно сразу заходить по https://www.example.com, чтобы не было проблем.
Получается, что никак это не решить, кроме создания отдельного сертификата для example.com в дополнение к *.example.com?