С сайта, у которого в адресной строке написано «Не защищено», покупатель не спешит оформлять заказ, а пациент — оставлять номер телефона. SSL-сертификат шифрует данные между сайтом и посетителем и переводит адрес на https://. Сертификаты Let's Encrypt бесплатны, выдаются на 90 дней, а ISPmanager сам продлевает их до окончания срока. Значит, достаточно один раз правильно установить сертификат, и дальше о нём можно не вспоминать.
Перед установкой: домен должен указывать на сервер
Перед выдачей сертификата Let's Encrypt проверяет, что домен действительно размещён на вашем сервере. Для этого он обращается по HTTP к IP-адресу из A-записи домена и читает специальный проверочный файл. Если домен ещё смотрит на старый хостинг, изменения DNS не разошлись или сайт не открывается на порту 80, сертификат не выпустится. Поэтому сначала проверьте адрес домена:
dig A misol.uz +short
dig A www.misol.uz +short
curl -I http://misol.uz
Обе команды dig должны вернуть IP вашего хостинг-сервера, а curl — показать заголовки ответа. Если вы недавно сменили NS-серверы домена в кабинете sayt.uz, изменениям может понадобиться несколько часов, чтобы распространиться.
Выпуск сертификата в ISPmanager
Войдите в ISPmanager и откройте раздел «SSL-сертификаты» в левом меню. Среди кнопок сверху выберите создание сертификата Let's Encrypt. В форме будут поля:
- Домен — для какого сайта выпускается сертификат; выберите свой сайт из списка.
- Псевдонимы — в списке должен быть и
www.misol.uz, иначе у тех, кто заходит с www, появится ошибка. - Wildcard — сертификат на все поддомены вида
*.misol.uz. Он проверяется через DNS, поэтому если DNS домена обслуживается не на сервере хостинга, этот вариант может не сработать. - Email — адрес для важных уведомлений.
После сохранения панель отправит запрос, и через несколько минут сертификат появится в списке в активном состоянии. Если статус долго остаётся «запрошен» или появляется ошибка, загляните в раздел о причинах ниже.
Подключение сертификата к сайту и редирект на HTTPS
Обычно ISPmanager автоматически привязывает новый сертификат к сайту, но один раз это стоит проверить. В разделе «Сайты» или «WWW-домены» откройте редактирование домена. Там должна стоять галочка «Защищённое соединение (SSL)» и в списке выбран именно новый сертификат Let's Encrypt. В той же форме включите «Перенаправлять HTTP-запросы в HTTPS», тогда каждый, кто зайдёт на http://misol.uz, автоматически попадёт на защищённый адрес.
В некоторых версиях панели есть и опция HSTS. Она велит браузеру впредь открывать сайт только по HTTPS. Это полезно, но если после включения HSTS сертификат сломается, посетители вообще не смогут попасть на сайт. Поэтому включайте HSTS только после того, как увидите хотя бы одно успешное продление сертификата.
Пример: сайт школы и смешанный контент
Частная школа в Намангане ведёт сайт на WordPress на домене misol.uz. После установки сертификата главная страница открывается по HTTPS, но браузер показывает предупреждение рядом с замком. Причина простая: картинки в статьях и некоторые скрипты записаны в базе с адресом http://. Это называется смешанным контентом. Сначала смените адрес сайта в настройках WordPress на https://misol.uz, затем обновите старые ссылки в базе. Если есть SSH, WP-CLI сделает это одной командой:
wp search-replace 'http://misol.uz' 'https://misol.uz' --all-tables --dry-run
wp search-replace 'http://misol.uz' 'https://misol.uz' --all-tables
Первая команда ничего не меняет и лишь показывает, сколько замен будет сделано, вторая выполняет замену. Перед этим обязательно сделайте копию базы. Без SSH можно воспользоваться надёжным плагином, который делает то же самое.
Сертификат не выпускается: частые причины
Первая причина — DNS: домен или его вариант с www указывает на другой IP. Вторая — правила в .htaccess или в коде сайта блокируют адрес /.well-known/acme-challenge/ или перенаправляют его на другую страницу. Третья — прокси-сервисы вроде Cloudflare: когда они включены, проверочный запрос может не дойти до вашего сервера напрямую. Четвёртая — CAA-запись домена: если она не разрешает Let's Encrypt, в выдаче будет отказано.
Важно знать, что Let's Encrypt ограничивает число неудачных попыток за короткое время. Многократное нажатие кнопки без исправления причины приведёт только к временной блокировке. Сначала найдите и устраните проблему, затем сделайте одну попытку. Если не получается, отправьте тикет в техподдержку sayt.uz с именем домена и текстом ошибки.
Как проверить, что сертификат работает
В браузере можно нажать на значок замка и посмотреть, кем выдан сертификат и до какой даты он действует. Из командной строки проверка выглядит так:
echo | openssl s_client -connect misol.uz:443 -servername misol.uz 2>/dev/null | openssl x509 -noout -issuer -dates
В выводе будут издатель сертификата и даты notBefore и notAfter. Если до notAfter осталось несколько дней, а продления нет, скорее всего изменился DNS домена или заблокирован проверочный адрес: автоматическое продление проходит ту же проверку, что и первый выпуск.