У клиента есть сертификат SSL только для версии домена www.site.com, но не site.com.
Перенаправление для обычного HTTP не было проблемой через mod_rewrite.
Однако этот метод показался нам неудачным для HTTPS.
Мы хотим перенаправить https://site.com запросы к https://www.site.com.
Можно ли это сделать без предупреждения о недействительном сертификате в браузере или без получения подстановочного сертификата?
Нет, так не работает.
Транзакция SSL происходит до отправки любого HTTP, поэтому предупреждение SSL появится до того, как произойдет какое-либо перенаправление.
На самом деле, я тоже не верю, что подстановочный знак будет работать, поскольку site.com и * .site.com - это не одно и то же. Вы можете рассмотреть Альтернативные имена субъектов на свидетельство.
Базовый сертификат 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 - тогда вам будет предложено.