Перенаправление SSL без предупреждения

10

Клиент имеет сертификат SSL только для версии домена www.site.com, но не для site.com.

Перенаправление для обычного HTTP не было проблемой через mod_rewrite.

Тем не менее, этот метод, казалось, потерпел неудачу для нас для HTTPS.

Мы хотим , чтобы перенаправить https://site.com запросы https://www.site.com .

Можно ли это сделать без предупреждения о недействительном сертификате в браузере или получения сертификата с подстановочными знаками?

djdy
источник

Ответы:

10

Нет, так не работает.

Транзакция SSL происходит перед отправкой любого HTTP, поэтому предупреждение SSL появится до того, как произойдет любое перенаправление.

На самом деле, я не верю, что подстановочный знак тоже подойдет, так как site.com и * .site.com - это не одно и то же. Вы можете рассмотреть альтернативные имена субъекта в сертификате.

CJC
источник
Я боялся, что это так. Спасибо за подтверждение.
DJDy
1
Этот ответ неверен. См. Serverfault.com/a/367843/113375
Бен Лессани - Сонасси
@ BenLessani-Sonassi В связанном ответе, по-видимому, не описывается, как может произойти перенаправление, когда сертификат для исходного сайта не распознается браузером.
Майкл
Суть, которую я пытался сделать, заключается в том, что почти все CA предоставят сертификат, который охватывает как домен apex, так и поддомен www, если он приобретен в варианте поддомен www.
Бен Лессани - Сонасси
0

Базовый сертификат RapidSSL при покупке по

www.mydomain.com 

также охватывает

domain.com

Хотя это не подстановочный знак, он дает вам прикрытие для домена TLD и www.

Да, вы можете перенаправить с одного субдомена на другой без ошибки SSL - мы используем это на многих сайтах, только один пример:

https://www.theclientarea.info, который перенаправляет на https://sms-sagat.theclientarea.info

Без ошибок.

Простое переписывание .htaccess позаботится об этом за вас:

RewriteEngine On
RewriteCond %{ENV:HTTPS} !On [NC]
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]

Любой тип перемещения между поддоменами HTTPS будет работать без ошибок или подсказок, будь то перенаправление POST / GET / .htaccess

Единственный раз, когда это становится проблемой, - если вы перенаправляете с HTTPS на HTTP - тогда вам будет предложено.

Бен Лессани - Сонасси
источник
Правильно, вы используете альтернативные имена субъекта в сертификате. ОП понадобится новый сертификат.
CJC
Нет, мы используем 2 отдельных сертификата. Но я только что сказал, что самый дешевый сертификат SSL на рынке делает то, что ему нужно (поддержка TLD с / без www поддоменом).
Бен Лессани - Сонасси