Вопрос или проблема
Мой основной домен – mydomain.org, с SSL сертификатом (https). У меня есть и другие домены (.com, .net, поддомены .org), которые указывают на основной домен (.org) (редирект), но у них нет SSL сертификатов.
В данный момент у меня есть стандартный SSL только для основного домена. Но сейчас, когда пользователи открывают любой из других доменов (http) или поддоменов .org, они получают предупреждение в браузере о том, что “не поддерживает безопасное соединение
“, и останавливаются на этом, а не переадресовывают на домен .org, как это было раньше.
Есть ли строки .htaccess, которые можно добавить для исправления этого? Или есть какой-то другой способ? Или единственный способ – купить многодоменный Wildcard SSL сертификат?
Нет, браузер явно правильно сообщает пользователю, что вы перенаправляете его на небезопасное соединение.
Единственное возможное (и правильное) решение – зашифровать это соединение.
Нет причин, по которым вам нужен дорогой или сложный TLS сертификат для этого; простой самозапрошенный сертификат letsencrypt определенно подойдет. certbot
делает получение (и автоматическое продление) такого сертификата делом в 5 минут.
Ответ или решение
Перенаправление HTTP домена на HTTPS домен без предупреждений: Полное руководство
Ваша проблема заключается в том, что у вас есть основной домен mydomain.org с установленным SSL сертификатом, и вы хотите перенаправить другие домены (.com, .net и поддомены .org), которые не имеют SSL сертификатов, на HTTPS версию вашего основного домена. Однако, пользователи, открывая эти домены, получают предупреждение о том, что соединение не защищено, и не могут быть перенаправлены.
Проблема
Основная проблема, с которой вы столкнулись, связана с отсутствием SSL-сертификатов на ваших других доменах и поддоменах. Когда браузер пытается соединиться с HTTP-сайтом и затем перенаправить пользователя на HTTPS, он сообщает о небезопасном соединении, что приводит к остановке процесса перенаправления.
Варианты решения
1. Приобретение SSL сертификатов
Самый эффективный способ решить эту проблему — получить SSL сертификаты для всех доменов и поддоменов, с которых вы хотите перенаправлять пользователей. Рассмотрим несколько вариантов:
-
LetsEncrypt: Это бесплатное и простое решение для получения SSL сертификатов. Вы можете использовать инструмент Certbot для автоматической установки и обновления сертификатов. Это займет всего 5 минут и полностью решит вашу проблему.
-
Многоцелевой сертификат: Если у вас есть множество доменов и поддоменов, рассмотреть возможность покупки многоцелевого или wildcard SSL сертификата может быть разумным решением. Это позволит вам защитить все ваши домены и поддомены с одним сертификатом.
2. Настройка перенаправления
После установки SSL для всех необходимых доменов, вы можете настроить перенаправление с HTTP на HTTPS с помощью файла .htaccess. Вот пример директив, которые вы можете добавить к вашему файлу .htaccess:
RewriteEngine On
# Перенаправление всех HTTP запросов на HTTPS
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Данная конфигурация проверяет, не используется ли HTTPS, и пытается перенаправить на HTTPS версию URL.
Заключение
Ваша проблема заключается в отсутствие SSL-сертификатов на дополнительных доменах и поддоменах, что вызывает предупреждения у пользователей браузеров. Чтобы избежать этого, рекомендуется установить SSL для всех доменов. Использование бесплатного сертификата LetsEncrypt может стать простым и легким решением, а также отличным вариантом для защиты ваших данных и повышения уровня доверия пользователей.
Обеспечив безопасное соединение на всех доменах, вы не только устраните предупреждения пользователей, но и улучшите SEO-позиции вашего сайта, так как Google учитывает наличие SSL при ранжировании.