Есть у меня домен adminkin.pro. Буду для этого домена получать, устанавливать и настраивать бесплатный SSL сертификат. Рассмотрю два случая: когда сайт на виртуальном хостинге и когда сайт на выделенном сервере. Настрою перенаправление редирект с HTTP на HTTPS. Все свои действия опишу в этой статье. Погнали!
Нужен ли вообще SSL сертификат для сайта?
Если коротко, то, да, нужен!
Если подробнее, то еще в 2014 году Google открыто заявил, что поддержка HTTPS протокола является фактором ранжирования. Другими словами, сайты, поддерживающие HTTPS протокол, при прочих равных, занимают в поисковой выдаче Google более высокие места по сравнению с сайтами на HTTP протоколе. А поддержка HTTPS протокола становится возможной как раз благодаря SSL сертификату.
Яндекс не отстает от Гугла, тоже заявляет, что он за безопасный интернет, что использование протокола HTTPS — это один из признаков безопасного сайта, и поэтому выбор защищенного протокола HTTPS может быть учтен в ранжировании.
Бесплатный SSL сертификат Let’s Encrypt
Из-за событий от 24 февраля 2022 года в Украине многие небесплатные, но бюджетные SSL сертификаты стали недоступны к покупке в России. Но, оказывается, бесплатный SSL сертификат от Центра сертификации Let’s Encrypt (Сан-Франциско, США) доступен, устанавливается и прекрасно обновляется! Объяснение одно: центр сертификации Let’s Encrypt — это некоммерческая организация, а некоммерческие организации сложнее поддаются какому-либо давлению.
Как получить SSL сертификат бесплатно для сайта на виртуальном хостинге
Первым делом логинимся на хостинг, где добавлен ваш домен (Нет домена? Читайте нашу статью Как купить домен). Находим на хостинге раздел SSL, на моем хостинге раздел SSL выглядит так:

Сейчас практически не существует хостинга, который не предлагает своим клиентам установку SSL сертификата от Let’s Encrypt. Поэтому, ищите у себя что-то типа Установка SSL сертификата Let’s Encrypt. У себя на хостинге я просто нажимаю кнопку Установить (см. рисунок выше) и нажимаю Let’s Encrypt (см. рисунок ниже).

Далее, выбираем домен, к этому домену будет привязан SSL сертификат. Я выбираю свой adminkin.pro. Для получения SSL сертификата от Let’s Encrypt не требуется наличие выделенного/статического/постоянного IP адреса, поэтому я выбираю Без IP. И нажимаю Установить.

Вот и все! Статус сертификата — Заказ в обработке, через некоторое время статус сертификата станет Установлен.


Мы получили и установили SSL сертификат для сайта на виртуальном хостинге бесплатно.
Проверьте единственную настройку Автопродление для сертификата. Автоматическое продление должно быть Включено. Это очень важно, поскольку сертификат Let’s Encrypt выдается только на 90 дней, т.е. раз в 3 месяца его нужно продлевать. А это очень удобно делать автоматически!
Как получить SSL сертификат бесплатно для сайта на выделенном сервере
- Сайт должен быть доступен на порту 80.
- Клиент Let’s Encrypt (еще он называется Cert bot) автоматически создает и устанавливает SSL сертификаты от Let’s Encrypt и при этом не требует остановки веб-сервера. Установка клиента Let’s Encrypt:
apt install certbot python-certbot-apache
- Запускаем Cert bot для генерации SSL сертификата и его установки на сайт (domain.ru замените на имя своего домена):
certbot --apache -d domain.ru -d www.domain.ru --register-unsafely-without-email
- SSL сертификат устанавливается в /etc/letsencrypt/live/domain.ru/

cert.pem — это SSLCertificateFile, chain.pem — это SSLCertificateChainfile, privkey.pem — это SSLCertificateKeyFile, fullchain.pem — это объединение первых двух сертификатов.
- Cert bot сам находит конфигурационный файл виртуального хоста (domainru.conf) с доменом domain.ru и прописывает пути к SSL сертификату. Нужно только их проверить.

- Активируем виртуальный хост с SSL и перезагружаем веб-сервер:
a2ensite domainru.conf
systemctl reload apache2
- Ручное продление SSL сертификата:
certbot renew
- Для автоматического продления SSL сертификата при помощи cron добавьте следующее задание в cron пользователя root:
30 2 * * 1 /usr/bin/certbot renew >> /var/log/certbot.log
Валидность SSL сертификата будет проверяться каждый понедельник в 2:30 ночи. Если срок действия сертификата истекает, что будет запущен Cert bot для обновления сертификата.
Ошибка «Сайт выполнил переадресацию слишком много раз. ERR_TOO_MANY_REDIRECTS»
После установки SSL сертификата сайт становится доступен по HTTPS протоколу. Другими словами, если я наберу в адресной строке браузера https://adminkin.pro, то сайт в браузере отобразится, правда, криво, но отобразится.

Чтобы соединение с сайтом было полностью защищенное, установки SSL сертификата недостаточно, нужно еще настроить редирект с HTTP на HTTPS протокол. В процессе настройки редиректа, если вы что-то сделаете неверно, то появится вот такая ошибка:

Данная ошибка означает, что редирект с протокола HTTP на защищенный протокол HTTPS был сделан неправильно, в браузере пользователя возникает циклическая переадресация с одного протокола на другой, сервер фиксирует большое количество переадресаций и выдает ошибку «Сайт выполнил переадресацию слишком много раз. ERR_TOO_MANY_REDIRECTS».
Как исправить ошибку в WordPress?
- Вспоминаем все поcледние действия с сайтом, чтобы потом «откатить» эти действия в предыдущее состояние, в состояние до ошибки.
- Вручную задаем используемый сайтом протокол. Для этого добавляем в файл wp-config.php, который располагается в корне вашего сайта, следующие строки:
define('FORCE_SSL_ADMIN', true);
if ($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')
$_SERVER['HTTPS']='on';

- Указав в адресной строке браузера протокол https, заходим в WordPress-админку вашего сайта и исправляем изменения, которые вызывают ошибку ERR_TOO_MANY_REDIRECTS. Например, я бы для своего сайта в адресной строке браузера набрала бы следующее: https://adminkin.pro/wp-admin/index.php
- Опять правим файл wp-config.php, на этот раз мы удаляем три строки, которые добавляли чуть ранее.
- Внимательно читаем разделы статьи Как настроить редирект с HTTP на HTTPS для сайта на WordPress и Как настроить редирект с HTTP на HTTPS для самописного сайта, чтобы больше не сталкиваться с ошибкой «Сайт выполнил переадресацию слишком много раз. ERR_TOO_MANY_REDIRECTS».
Как настроить редирект с HTTP на HTTPS для сайта на WordPress
Настройка редиректа с HTTP на HTTPS в WordPress делается с помощью плагина. Логинимся в WordPress-админку, выбираем Плагины -> Добавить новый. В строке поиска плагинов набираем simple ssl, нужный нам плагин Really Simple SSL.

Нажимаем Установить и Активировать плагин Really Simple SSL. Плагин нас информирует, что Всё готово для перехода на SSL:

Плагин Really Simple SSL перед переходом на SSL предлагает:
- проверить http ссылки в файлах .css и .js и заменить все http:// на https:// По моему мнению, лучший способ вообще не указывать протокол в ссылках. Пример ссылки с указанием протокола:
<a href="https://adminkin.pro/linux/" class="menu-link">
Пример ссылки БЕЗ указания протокола:
<a href="//adminkin.pro/linux/" class="menu-link">
- проверить изображения, стили и скрипты из домена без SSL сертификата, удалить их или переместить к себе на сайт.
Все проверили? Нажимаем кнопку Активировать SSL. Смотрите, что получилось:

Плагин Really Simple SSL предлагает проверить безопасность нашего сайта. Давайте проверим! Набираем в адресной строке браузера адрес сайта. Например, я наберу http://adminkin.pro, заодно проверю, как работает редирект с HTTP на HTTPS.
О! Сайт загрузился, редирект сработал, в адресной строке перед адресом сайта появился Замочек.

Нажимаем на Замочек и в появившемся меню кликаем по Безопасное подключение.

Ура! У меня Безопасное подключение и Действительный сертификат.
Возвращаемся в WordPress-админку, смотрим дальше рекомендации плагина Really Simple SSL.

Плагин просит вас не забыть изменить ваши URL во внешних сервисах вроде Google Analytics.
Смотрим дальше рекомендации плагина:

Плагин информирует, что Переадресация WordPress 301 включена, рекомендует включить переадресацию 301 в файле .htaccess. Переадресация 301 — это как раз тот самый редирект с HTTP на HTTPS, которым мы занимаемся.
Я буду включать переадресацию 301 в файле .htaccess, поскольку буду удалять плагин Really Simple SSL, он свое дело сделал, а при удалении этого плагина переадресация WordPress 301 выключится, но зато останется включенной переадресация 301 в файле .htaccess.
Приступим! Нажимаем на ссылку Включить (см. рисунок выше) и передвигаем ползунок слева направо в строке Включить 301 переадресацию .htaccess (см. рисунок ниже). Нажимаем кнопку Сохранить.

Все готово! Теперь спокойно удаляем плагин Really Simple SSL. Выбираем раздел Плагины -> Установленные -> Really Simple SSL -> Деактивировать.

Здесь выбираем Отключить, сохранить https. Теперь нажимаем ссылку Удалить рядом с плагином Really Simple SSL.
Как настроить редирект с HTTP на HTTPS для самописного сайта
Если у вас самописный сайт и веб-сервер Apache, то редирект с HTTP на HTTPS настраивается вручную в файле .htaccess, который располагается в корне вашего сайта. Открываем файл .htaccess в любом текстовом редакторе и добавляем следующие строки:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !robots\.txt
RewriteCond %{HTTP:HTTPS} !=on [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}/\ [R=301]
Первая строка RewriteEngine on — включение преобразования URL адресов. Остальные строки — само преобразование HTTP на HTTPS.
Если главное зеркало вашего сайта — это имя домена без www, например, adminkin.pro, то самое время дописать в файл .htaccess еще и Редирект с www, для этого добавляем строки:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/\ [R=301,L]
Если главное зеркало сайта — имя домена с www, например, www.adminkin.pro, то добавляем в файл .htaccess строки:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\..* [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/\ [R=301,L]
У меня в результате получилось так:

Выводы
Яндекс и Google за безопасный интернет, и мы вместе с нашим сайтом тоже! Для этого мы разобрались, как получить SSL сертификат бесплатно для сайта на виртуальном хостинге и для сайта на выделенном сервере. Разобрались, как настроить переадресацию редирект с HTTP на HTTPS. И проверили безопасность нашего сайта.
Как это может помочь бизнесу?
Данная статья объясняет, как получить бесплатный сертификат SSL для сайта бизнеса. А, как уже было сказано выше, наличие SSL сертификата у сайта добавляет «солидности» в глазах поисковиков, гарантирует более лучшие места в поисковой выдаче и, как следствие, бОльший поток клиентов на сайт.
Все вопросы, пожалуйста, оставляйте в комментариях под этой статьей.
Комментарии