Cat

Certbot - бесплатный SSL-сертификат для сайта

В этом посте, я покажу как получить SSL-сертификат Let's Encrypt на Windows. И расскажу, для чего он нужен.

Дополнительные материалы

Icon Link

Реклама

Icon Link
Полезные инструменты proDream 22 Сентябрь 2023 Просмотров: 458

В настоящее время даже думать не стоит о запуске сайта без оснащённого SSL-сертификатом. Более того, в скором времени сайты работающие на HTTP вовсе перестанут открываться в браузерах без "танцев с бубном" и десятка подписей, что вы осознаёте все риски.

Самый простой способ получить SSL-сертификат, это его купить у хостинг-провайдера либо в специализированном центре сертификации.

Существуют разные виды сертификатов, различающиеся лишь "уровнем доверия". В кавычках, потому, что по большому счёту это "плата за воздух" и "бренд", но это отдельная тема для дискуссии.

Нас же интересует бесплатный сертификат Let's Encrypt. Сертификат выдаётся на 3 месяца. Если у вас небольшой сайт или страничка PET-проекта, этого достаточно на первое время.

 

Важно.

В данном посте будет показано получение сертификата на ОС Windows 11.
В качестве терминала используется PowerShell версии 7.3.6.
Настройки домена на примере хостинг-провайдера TimeWeb.

Пост по настройке на Linux с возможностью автопродления будет позже.

 

Что такое SSL-сертификат и для чего он нужен.

SSL-сертификат, или Secure Socket Layer, это цифровая подпись, подтверждающая подлинность веб-сайта и безопасное соединение между пользователем и сервером. SSL-сертификаты необходимы для сайтов, обрабатывающих конфиденциальную информацию, например, данные кредитных карт, личную информацию, данные аутентификации и так далее.

 

Он обеспечивает следующие функции:

  • Шифрование данных: SSL-сертификаты шифруют информацию, передаваемую между пользователем и сайтом, обеспечивая защиту от перехвата и подмены данных.
  • Идентификация сайта: SSL-сертификаты содержат информацию о домене, для которого они выданы, что позволяет браузеру убедиться в подлинности сайта.
  • Установление безопасного соединения: SSL-сертификаты создают безопасное соединение между браузером пользователя и сервером сайта, защищая от атак “человек посередине”.
  • Подпись кода: SSL-сертификаты могут использоваться для подписи исполняемого кода, чтобы подтвердить его подлинность и целостность.

 

Certbot.

Для получения сертификата будем использовать программу Certbot.

Certbot — это программа с открытым исходным кодом, предназначенная для получения и продления SSL-сертификатов для обеспечения безопасности и доверия на веб-сайтах. Она работает на платформах Linux, macOS и Windows и поддерживает широкий спектр центров сертификации, включая Let’s Encrypt и ACME. Certbot прост в использовании и автоматизирует весь процесс получения и обновления сертификатов.

Официальный сайт программы: https://certbot.eff.org/

 

Установка.

Необходимо скачать и установить программу.

Скачиваем по ссылке: https://github.com/certbot/certbot/releases/latest/download/certbot-beta-installer-win_amd64_signed.exe

И устанавливаем. Буквально далее-далее-финиш. В процессе можете изменить стандартный путь установки, если необходимо.

Проверить работоспособность можно в терминале введя команду: certbot --version.
В результате выполнения должна отобразиться строчка certbot 2.6.0. (актуальная на момент написания поста версия.)

 

Получение сертификата.

Запускаем PowerShell от имени администратора. Это важно! Иначе сертификат невозможно будет сгенерировать!

И вводим следующую команду: certbot certonly --authenticator manual --preferred-challenges dns

 

Параметры команды:

  • certonly - указывает, что мы хотим получить только сертификат.
  • --authenticator manual - указывает, что мы в ручном режиме предоставим доказательства владения доменом.
  • --preferred-challenges dns - указывает, что в качестве подтверждения будет использоваться TXT-запись в DNS домена.

 

 

Выполняем. Далее нас попросят ввести домен или домены через пробел или запятую, к которым будет относиться сертификат. Принято вводить две версии домена, с www и без. Также я дополнительно введу и почтовый поддомен. Выходит такая строка: pressanybutton.ru www.pressanybutton.ru mail.pressanybutton.ru.

 

Внимание! Есть ещё второй вариант добавления неограниченного количества поддоменов в сертификат. Для этого указываем два домена: domain.ru и *.domain.ru. Это упростит получение сертификата, если у вас несколько поддоменов.
Однако, стоит отметить, что данный способ не указан в документации, гарантировать его работу не могу.

Нажимаем Enter и далее начнётся "испытание". 
На этом этапе будьте предельно внимательны! Если вы ввели всего один домен, не спешите нажимать Enter после вывода задания, также, если вы ввели несколько доменов, не нажимайте Enter после вывода задания для последнего домена. Поскольку DNS запись обновляется не сразу. Об этом чуть ниже.

Для каждого введённого домена будет выведено имя хоста и текстовая запись, которые необходимо создать в панели управления вашим доменом.

 

На примере mail.pressanybutton.ru:
Хост: _acme-challenge.mail.pressanybutton.ru.
Значение: QkUdVKpxx1jbCin6Yf64l5IaKgJEYrgIG0iYYbNFTj4

Поскольку у меня три домена введено, то и три записи надо создать. На примере одной из них в панели управления TimeWeb:
Необходимо создать TXT-запись. 
Выбираем раздел "Домены", там необходимый домен, затем вкладку "DNS".
Нажимаем на кнопку "Добавить запись" и выбираем "TXT".
В разделе Хост выбираем "Ввести вручную" и вводим _acme-challenge.mail.
В поле значение вводим: QkUdVKpxx1jbCin6Yf64l5IaKgJEYrgIG0iYYbNFTj4.

 

И так делаем, пока не дойдём до последнего домена. Когда создадите запись для последнего домена, не спешите нажимать Enter. DNS-записи могут обновляться достаточно долго, до 24-х часов. Отслеживать добавилась запись к домену или нет, можно по ссылке указанной в тексте под кодом значения. Перейдя по ней, можно увидеть, есть запись у домена или ещё нет. Если есть, убедитесь, что и для других указанных доменов она тоже присутствует, нажимайте Enter. 
Также стоит отметить, что до появления записи в DNS, терминал следует держать открытым, иначе придётся всё проделывать заново.

 

Если, всё выполнено верно и не было никаких ошибок, будет выведено последнее сообщение и завершится работа программы.

В последнем сообщении будет указано расположение файлов и дата окончания действия.

 

Пути расположения файлов:

Сертификат: C:\Certbot\archive\pressanybutton.ru\fullchain.pem
Приватный ключ: C:\Certbot\archive\pressanybutton.ru\privkey.pem
В директории так же будет ещё два других сертификата, но их применение только в специализированных ситуациях. В качестве сертификата используйте только fullchain.pem.

 

Поздравляю! Теперь у вас есть действующий сертификат для сайта, сроком на 3 месяца.

 

Пост на сайте.
Поддержать канал.

Автор

    Нет комментариев

    Реклама