Сертификат Let’s Encrypt и использование certbot

Оглавление

Сертификат от Let’s Encrypt можно получить с помощью certbot и использовать для сторонних сервисов, таких как Dovecot, Asterisk, Postfix, Exim

Дано

[свернуть]

Установка certbot

Первое, что необходимо сделать

Certbot есть в EPEL (дополнительные пакеты для корпоративного Linux). Чтобы использовать Certbot, вы должны сначала включить репозиторий EPEL. В RHEL или Oracle Linux вы также должны включить дополнительный канал.

После чего устанавливаем bot

Плагины DNS Certbot также доступны для вашей системы, которые могут использоваться для автоматизации получения подстановочного сертификата с сервера ACMEv2 от Let’s Encrypt. Чтобы использовать один из этих плагинов, вы должны настроить DNS для домена, для которого вы хотите получить сертификат, с поставщиком DNS, для которого у Certbot есть плагин. Список этих плагинов и дополнительную информацию об их использовании можно найти здесь. Чтобы установить один из этих плагинов, запустите команду установки выше, но замените certbot именем плагина DNS, который вы хотите установить.

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

Поскольку ваша архитектура сервера еще не поддерживает автоматическую установку, вам нужно будет использовать команду certonly для получения вашего сертификата. Это позволит вам интерактивно выбирать плагин и параметры, используемые для получения вашего сертификата.

Если у вас уже есть веб-сервер, мы рекомендуем выбрать плагин webroot. Кроме того, вы можете указать дополнительную информацию в командной строке. Чтобы получить сертификат, используя плагин webroot, который может работать с каталогом webroot любого программного обеспечения веб-сервера:

Заметка:

Чтобы использовать плагин webroot, ваш сервер должен быть настроен на обслуживание файлов из скрытых каталогов. Если /.well -known обрабатывается специальной конфигурацией веб-сервера, вам может потребоваться изменить конфигурацию, чтобы гарантировать, что файлы внутри /.well-known/acme-challenge обрабатывались веб-сервером.

[свернуть]

Чтобы получить сертификат, используя встроенный «автономный» веб-сервер (вам может потребоваться временно остановить существующий веб-сервер, если таковой имеется) для example.com и www.example.com:

Вы также можете использовать один из подключаемых модулей Certbot для получения сертификата, если он установлен, и вы настроили DNS для домена, для которого вы хотите получить сертификат, с поставщиком DNS, соответствующим плагину. Чтобы узнать больше об использовании этих плагинов, нажмите здесь. Если вы хотите использовать один из этих плагинов с новым ACMEv2-сервером Let’s Encrypt, который выдаст подстановочные сертификаты, вам также потребуется включить в командной строке следующий флаг:

Автоматическое обновление

Certbot может быть настроен на автоматическое обновление сертификатов до истечения срока их действия. Так как сертификаты Let’s Encrypt длятся в течение 90 дней, рекомендуется воспользоваться этой функцией. Вы можете протестировать автоматическое обновление сертификатов, выполнив следующую команду:

Если это работает правильно, вы можете организовать автоматическое обновление, добавив задание cron или таймер systemd, который запускает следующее:

Заметка

если вы настраиваете работу cron или systemd, мы рекомендуем запускать задачу два раза в день (она ничего не сделает, пока ваши сертификаты не будут возвращены или отменены, но регулярное выполнение этого задания даст вашему сайту возможность оставаться в сети в случае, если по какой-то причине произошло аннулирование сертификата). Пожалуйста, выберите случайную минуту в течение часа для выполнения задач продления.

[свернуть]

Пример работы cron может выглядеть так, что будет работать в полдень и полночь каждый день:

Расположение сертификатов

Все сгенерированные ключи и выданные сертификаты можно найти в домене /etc/letencrypt/live/$domain. Вместо того, чтобы копировать, укажите конфигурацию сервера непосредственно на эти файлы (или создайте символические ссылки). Во время обновления, /etc/letencrypt/live обновляется последними полученными файлами. Каталог /etc/letsencrypt/archive и /etc/letsencrypt/keys содержат все предыдущие ключи и сертификаты, а /etc/letencrypt/live симлинки на последние, актуальные файлы

Доступны следующие файлы

privkey.pem — закрытый ключ сертификата

Внимание

Этот ключ нужно держать в секрете всегда! Никогда не сообщайте об этом никому, включая разработчиков Certbot. Однако вы не можете поместить его в сейф, ваш сервер все равно должен получить доступ к этому файлу, чтобы работать с SSL/TLS.

[свернуть]

Это то, что Apache требуется для SSLCertificateKeyFile и Nginx для ssl_certificate_key.

fullchain.pem — все сертификаты, включая сертификат сервера (сертификат aka leaf или сертификат конечного объекта). Сертификат сервера является первым в этом файле, за которым следуют любые промежуточные продукты. Это то, что Apache> = 2.4.8 требуется для SSLCertificateFile, и что нужно Nginx для ssl_certificate.

cert.pem и chain.pem (менее распространены) cert.pem содержит сертификат сервера сам по себе, а chain.pem содержит дополнительный промежуточный сертификат или сертификаты, которые понадобятся веб-браузерам для проверки сертификата сервера. Если вы поставите один из этих файлов на свой веб-сервер, вы должны предоставить оба из них, или некоторые браузеры будут показывать ошибки «Это соединение без доверия» для вашего сайта. Apache <2.4.8 нуждается в них для SSLCertificateFile. и SSLCertificateChainFile, соответственно. Если вы используете сшивание OCSP с Nginx> = 1.3.7, chain.pem следует предоставить как ssl_trusted_certificate для проверки ответов OCSP.

Дополнения

Команда renew включает в себя перехваты для запуска команд или скриптов до или после обновления сертификата. Например, если у вас есть один сертификат, полученный с помощью автономного плагина, вам может потребоваться остановить веб-сервер перед обновлением, поэтому необходимо остановить, а затем запустить веб-сервер после завершения работы плагина. Пример:

Команды pre-hook и post-hook запускаются до и после каждой попытки обновления. Если вы хотите, чтобы ваш скрипт запускался только после успешного обновления, используйте команду deploy-hook в такой команде.

Изменение файла конфигурации обновления

Когда сертификат выдается, по умолчанию Certbot создает файл конфигурации обновления, который отслеживает параметры, которые были выбраны при запуске Certbot. Это позволяет Certbot использовать те же самые параметры снова, когда приходит время для обновления. Эти файлы конфигурации обновления расположены по адресу

Внимание

Изменение любых файлов в файле / etc / letsencrypt может привести к их повреждению, поэтому Certbot больше не сможет правильно управлять своими сертификатами, и мы не рекомендуем это делать.

[свернуть]

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

Например, скажем, что файл конфигурации обновления сертификата ранее содержал следующие директивы:

Следующие команды могут использоваться для указания, где находятся эти файлы:

Конфигурационный файл

Certbot принимает глобальный файл конфигурации, который применяет его параметры ко всем вызовам Certbot. Конфигурационные настройки для конкретных сертификатов должны быть установлены в файлах .conf, которые можно найти в /etc/letencrypt/renewal. По умолчанию файл cli.ini не создается, после его создания можно указать расположение этого файла конфигурации с помощью certbot-auto —config cli.ini (или более короткого -c cli.ini).

Смена адреса уведомления об истечении срока действия сертификата

Примеры использования сертификатов Let’s Encrypt в сторонних приложениях

Сертификат от Let’s Encrypt можно использовать не только в Apache, но Asterisk, Postdix, Dovecot и других приложениях Linux

0 0 голоса
Рейтинг статьи
Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (5 оценок, среднее: 5,00 из 5)
Загрузка...
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии