Сайт не работает по HTTPS: как подключить бесплатный сертификат
Что это значит
Защищённая версия сайта (адрес с https://) не открывается. Сайт работает только по старому незащищённому http://.
Чем мешает
Браузер показывает рядом с адресом «Не защищено», и часть посетителей уходит, особенно когда нужно оставить телефон или оплатить. Поисковики предпочитают сайты с HTTPS.
Как исправить
WordPress
- В панели хостинга выпустите бесплатный сертификат Let's Encrypt для домена и для www (кнопка обычно в разделе «SSL-сертификаты»).
- В «Настройки → Общие» поменяйте «Адрес WordPress (URL)» и «Адрес сайта (URL)» на
https://. - Установите плагин Really Simple Security (раньше назывался Really Simple SSL), включите в нём HTTPS и перенаправление с http.
Tilda
- Подключите свой домен («Настройки сайта → Домен»), затем «Настройки сайта → SEO → Настройка HTTPS» и включите сертификат. Tilda выпустит его бесплатно.
- Потом в «Настройки сайта → SEO → Редиректы для WWW, HTTPS» выберите редирект с HTTP на HTTPS, а в «SEO → Дополнительно» отметьте «Использовать схему HTTPS в robots.txt, sitemap.xml и метатеге canonical URL». Опубликуйте все страницы.
1С-Битрикс
- Выпустите сертификат в панели хостинга (или через меню виртуальной машины BitrixVM, если сайт работает на ней).
- Добавьте в
.htaccessправило перенаправления на https (пример ниже).
OpenCart
- Выпустите сертификат в панели хостинга.
- В
config.phpиadmin/config.phpзамените адресаhttp://наhttps://. - OpenCart 2–3: «Система → Настройки → Редактировать магазин → вкладка Сервер → Использовать SSL: Да».
- Добавьте в
.htaccessперенаправление на https (пример ниже).
Другой движок или свой сервер
- Выпустите сертификат:
sudo certbot --nginx -d example.by -d www.example.by(или через панель хостинга). - Откройте порт 443 в файрволе и настройте 301-перенаправление с http на https (пример ниже).
Пример кода
Замените example.by на адрес своего сайта.
# nginx: все http и www ведут одним 301 на https://example.by
server {
listen 80;
server_name example.by www.example.by;
return 301 https://example.by$request_uri;
}
server {
listen 443 ssl;
server_name www.example.by;
ssl_certificate /etc/letsencrypt/live/example.by/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.by/privkey.pem;
return 301 https://example.by$request_uri;
}
# .htaccess в корне сайта (Apache). Замените example.by на свой домен.
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteRule ^ https://example.by%{REQUEST_URI} [L,R=301]
«Сами за 5 минут» в Tilda и у хостингов с кнопкой Let's Encrypt. На своём сервере это задача для разработчика.
Если сайт делал подрядчик
Перешлите ему ссылку на отчёт и эту просьбу:
Сайт не открывается по https://. Выпустите, пожалуйста, сертификат Let's Encrypt для домена и www, включите HTTPS и настройте 301-перенаправление со всех http-адресов на https.
Как проверить, что всё исправлено
Проверьте сайт снова на yasnoseo.by.