Как использовать Let's encrypt SSL Certificates для HTTPS-ферм

Просмотр категорий

Как использовать Let's encrypt SSL Certificates для HTTPS-ферм

11 min read

Обзор #

Let's Encrypt - это открытый автоматизированный центр сертификации, использующий ACME (Среда автоматического управления сертификатами) протокол для предоставления бесплатных сертификатов TLS / SSL любому совместимому клиенту. Эти сертификаты могут использоваться для шифрования связи между веб-серверами и пользователями.

В этом руководстве кратко обсуждаются центры сертификации и то, как RELIANOID интеграция работает с Let's Encrypt, а затем узнайте, как RELIANOID использует certbot (Клиент ACME) для связи с инфраструктурой Let's encrypt.

RELIANOID Load Balancer 6.0.3 или более поздней версии включает в себя крошечную оболочку сертификат-бота под названием letsencryptz Чтобы использовать функциональность веб-корня Certbot, в следующих строках объясняется, как работает эта оболочка, пожалуйста, учтите все это, чтобы она работала в производственных средах.

Как работает проверка Let's encrypt? #

В качестве краткого описания функциональности веб-рутирования: плагин веб-рута работает путем создания временного файла для каждого из запрошенных вами доменов в RELIANOID Путь файла /usr/local/relianoid/app/letsencryptz/webroot/.well-known/acme-challenge/. Затем сервер проверки Let's Encrypt выполняет HTTP-запросы для проверки того, что DNS для каждого запрошенного домена разрешается на сервер, на котором запущена оболочка letsencryptz, и временный файл для целей проверки доступен. На следующей диаграмме показан реальный пример:

Давайте зашифровать RELIANOID

На предыдущей диаграмме RELIANOID Балансировщик нагрузки находится за маршрутизатором/брандмауэром с общедоступным IP-адресом. 185.79.20.147 (в качестве примера) трафик HTTP и HTTPS передается на внутренний балансировщик нагрузки с помощью VIP 192.168.101.31 (в качестве примера), где балансировщик нагрузки настроен с различными фермами 2:

Имя фермы HTTPS Веб хостинг с помощью 192.168.101.31:443, Эта ферма отвечает за предоставление веб-хостинга, различные веб-серверы публикуются вместе с этим в Интернете. Например, test1.relianoid.com, test2.relianoid.com, test3.relianoid.com тестируют веб-страницы, опубликованные на этом виртуальном сервисе, среди других.
Имя фермы HTTP WebhostingRedirect с помощью 192.168.101.31:80, Эта ферма используется только для перенаправления, она перенаправляет весь трафик с HTTP на HTTPS.

На предыдущей диаграмме описан запрос сертификата SSL Let's Encrypt для домена. test1.relianoid.com следующим образом:

1. Запрос сертификата отправляется от самого балансировщика нагрузки в инфраструктуру Let's Encrypt.
2. Let's encrypt обнаруживает новый запрос сертификата SSL для test1.relianoid.com
3. Давайте зашифруем, запустим разрешение IP-адреса DNS для запрошенного хоста: test1.relianoid.com проверка, что результатом является общедоступный IP-адрес, тот же IP-адрес источника, который инициировал запрос.
4. На этом этапе Let's encrypt объявляет letsencryptz скрипт (webroot cerbot), необходимый для создания файла с HASH / ХЭШ на общественном пути http://test1.relianoid.com/.well-know/acme-challenge/ (Порт 80 TCP), локальный каталог /usr/local/relianoid/app/letsencryptz/webroot/.well-known/acme-challenge/, Затем, letsencryptz настраивает временную службу, чтобы сделать этот файл доступным из Интернета (ферма WebhostingRedirect будет изменен для этой цели. Если ферма уже не настроена letsencryptz создаст временный в этом VIP и Port).
6. Как только letsencryptz подтверждает создание временного сервиса, серверы Lets Encrypt проверяют, что файл временного подтверждения был создан и HASH / ХЭШ содержание правильно.
7. Наконец, серверы Let's Encrypt отвечают на первый запрос уже созданным сертификатом для Распространенное имя (CN) test1.relianoid.com.
8. RELIANOID сохранит уже созданный сертификат по локальному пути /usr/local/relianoid/config/ и он готов к настройке в ферме Веб хостинг.

На этом этапе новый сертификат Let's Encrypt будет использоваться для виртуальной службы HTTPS.

Команды автоматизации Let's Encrypt #

Как описано, letsencryptz Скрипт будет автоматизировать необходимые действия для управления вашими сертификатами SSL, такими как создание, обновление, уничтожение или список, среди прочего. Найдите ниже доступные команды.

root@zva6k:~# letsencryptz letsencryptz описание: letsencryptz — это оболочка Let's Encrypt (certbot) с минимальными параметрами, готовая к управлению сертификатами Let's Encrypt для https-профилей Relianoid. Примите во внимание, что эта оболочка использует функцию certbot webroot, поэтому публичная архитектура Let's Encrypt требует подключения к локальному виртуальному IP-адресу и порту (по умолчанию TCP 80) для проверки запроса на запрашиваемый домен, поэтому, как только будет использован параметр «obtain», этот скрипт настроит HTTP-ферму, к которой Let's Encrypt будет обращаться для проверки; эта настройка выполняется автоматически самим скриптом; убедитесь только, что используемый виртуальный IP-адрес и HTTP-порт 80 не используются какой-либо другой фермой с балансировкой нагрузки, а также убедитесь, что разрешение DNS для запрашиваемого домена доступно из системы Let's Encrypt.


использование: /usr/local/relianoid/bin/letsencryptz действие: --obtain | --destroy | --renew | --list | --listconf | --help --obtain: Запросить новые сертификаты с помощью модуля webroot cert-bot.

		команды: --vip --ферма --домен --домен --домен --test --vip: Виртуальный IP-адрес уже настроен для публикации временного веб-сервера, он будет подключен к общедоступным серверам Let's Encrypt для проверки запроса сертификата. Виртуальный IP-адрес должен быть свободен на порту 80, чтобы его мог привязать локальный процесс. Если он не свободен, используйте вместо этого --farm.
        		--farm: Имя фермы, которая настраивает временную службу с именем «letsencryptz». Если ферма не используется, на выбранном виртуальном IP-адресе будет настроена временная ферма с именем «letsencryptRelianoid».
        		--domain: Домен, для которого запрашивается сертификат, т.е. www.mycompany.com.
			--test: Необязательный параметр, если используется, сертификат запрашивается для целей тестирования.

	--destroy: отозвать и удалить указанное имя сертификата; действие отклоняется, если данный сертификат используется фермой.
		
		команды: --certname --certname: Имя сертификата, это значение можно получить из действия --list.

	--renew: Обновить сертификаты, срок действия которых близок к концу, команды не требуются. Команды: --test --forcerestart --vip --ферма --test: Необязательный параметр, если используется, выполняется пробный прогон, имитируется обновление сертификатов. 
			--forcerestart: Необязательный параметр. Если он используется, фермы, использующие обновленные сертификаты, будут перезапущены для применения изменений.
                        --vip: Виртуальный IP-адрес, уже настроенный для публикации временного веб-сервера, будет подключен к общедоступным серверам Let's Encrypt для проверки обновления сертификата. Виртуальный IP-адрес должен быть свободен на порту 80, чтобы его мог привязать локальный процесс. Если он не свободен, используйте вместо этого --farm.
                        --farm: Имя фермы, которая настраивает временную службу с именем «letsencryptz». Если ферма не используется, на выбранном виртуальном IP-адресе будет настроена временная ферма с именем «letsencryptRelainoid».

	--list: Вывести список всех локальных сертификатов, управляемых Let's Encrypt, и их статус, команды не требуются.

	--listconf: СписокRELIANOID


Первый запуск letsencryptz займет некоторое время, потому что система будет автоматически устанавливать неразрешенные зависимости, а также перед тем, как начать ее использовать, выполняется проверка конфигурации, Let's Encrypt запрашивает учетную запись электронной почты или контактные цели, связанные с сертификатами, эта учетная запись электронной почты будет использоваться при любых действиях, выполняемых против системы Let's Encrypt, этот адрес электронной почты можно настроить в основном файле конфигурации /usr/local/relianoid/config/global.confдиректива $ le_email.

Некоторые примеры использования приведены ниже.

RELIANOID Создание сертификата Let's Encrypt #

Эта команда запрашивает новый сертификат для домена test2.relianoid.com. Учтите, что данный VIP будет внутренним, трафик которого нужно перебрасывать с публичного IP на внутренний. Если Let's Encrypt не сможет связаться с этой службой, запрос будет отклонен.

root@zva6k:~# letsencryptz --obtain --vip 192.168.101.31 --domain test2.relianoid.com ВНИМАНИЕ: Имя фермы не указано, временная ферма с именем letsencryptRelianoid будет создана в VIP 192.168.101.31 порт 80. Настройка фермы для проверки имени сертификата let's encrypt Получение сертификата для доменов test2.relianoid.com... Сохранение журнала отладки в /var/log/letsencrypt/letsencrypt.log Выбранные плагины: Аутентификатор webroot, Установщик Нет Получение нового сертификата Нестандартные пути, могут не работать с crontab, установленным менеджером пакетов вашей операционной системы Запрос сертификата для домена(ов) test2.relianoid.com OK Создано Имя сертификата test2.relianoid.com в формате PEM готово для профиля HTTPS Уничтожение конфигурации webroot для фермы letsencryptRelianoid Удаляем уже существующую конфигурацию для letsencryptRelianoid, сервис letsencryptz Перезапускаем фермы с использованием обновленных сертификатов: 

RELIANOID Листинг сертификатов Let’s Encrypt #

Выполнение этой команды покажет текущие сертификаты, управляемые RELIANOID Давайте зашифруем систему.

root@zva6k:~# letsencryptz --list Вывод списка всех доступных сертификатов для текущей конфигурации в каталоге конфигурации /usr/local/relianoid/config/letsencrypt/ Сохранение журнала отладки в /var/log/letsencrypt/letsencrypt.log Имя сертификата: test1.relianoid.com Домены: test1.relianoid.com Дата истечения срока действия: 2019-09-19 10:48:02+00:00 (ДЕЙСТВИТЕЛЬНО: 77 дней) Файл сертификата PEM: /usr/local/relianoid/config/test1_relianoid_es.pem Имя сертификата: test3.relianoid.com Домены: test3.relianoid.com Дата истечения срока действия: 2019-09-26 06:32:52+00:00 (ДЕЙСТВИТЕЛЬНО: 83 дня) Файл сертификата PEM: /usr/local/relianoid/config/test3_relianoid_es.pem


Принять во внимание поле Название сертификатаэто поле будет распознано оболочкой letsencryptz как –Certname.

RELIANOID Продление сертификата Let’s Encrypt #

Предыдущая команда проверяет, требует ли продление какого-либо уже сгенерированного сертификата, и в этом случае обновление будет выполнено автоматически. Примите во внимание, что, если обновленная сертифицированная система используется, потребуется перезагрузка фермы, чтобы применить изменения, пожалуйста, используйте опцию –Forcerestart если вы хотите letsencryptz перезапускает все необходимые фермы, чтобы применить изменения.

root@zva6k:~# letencryptz --renew --vip 192.168.101.31 Обновление всех необходимых сертификатов Сохранение журнала отладки в /var/log/letsencrypt/letsencrypt.log Сертификат еще не подлежит продлению Сертификат еще не подлежит продлению

RELIANOID Удаление сертификата Let’s Encrypt #

Эта команда отзывает и удаляет данный сертификат. В случае, если система обнаружит, что выбранный сертификат в настоящее время используется какой-либо фермой HTTPS, действие будет отклонено, в приведенном выше примере действие удаления отклонено, так как сертификат используется фермой testhttps.

root@zva6k:~# letsencryptz --destroy --certname test3.relianoid.com Отзыв и удаление сертификата(ов) test3.relianoid.com для текущей конфигурации... Этот файл не может быть удален, поскольку он используется фермой(ами): testhttps

Как только сертификат будет удален из фермы, будет выполнено действие:

root@zva6k:~# letsencryptz --destroy --certname test3.relianoid.com Отзыв и удаление сертификата(ов) test3.relianoid.com для текущей конфигурации... Сохранение журнала отладки в /var/log/letsencrypt/letsencrypt.log Удаленный(е) сертификат(ы) test3.relianoid.com по пути /usr/local/relianoid/config/test3_relianoid_es.pem

Перенести сертификаты Let’s Encrypt на RELIANOID #

RELIANOID Балансировщик нагрузки сохраняет все файлы конфигурации certbot в местном пути / USR / местные / zevenet / конфигурации / letsencrypt /, Чтобы переместить ваши существующие файлы конфигурации certbot (по умолчанию в / И т.д. / letsencrypt) другого Сервера на RELIANOID, вам нужно только создать архив (файл tar.gz) этого существующего каталога конфигурации на вашем сервере и распаковать содержимое в RELIANOID Давайте зашифруем путь к конфигурации. Наконец, рассмотрите возможность изменения переменной $ le_email в файле global.conf на тот же адрес электронной почты, который использовался в предыдущих запросах.

Поддержка кластеризации сертификатов Let's Encrypt #

RELIANOID Плагин Let's Encrypt полностью поддерживается RELIANOID Кластерный сервис. Все действия Let’s Encrypt сохраняются в файле конфигурации, реплицируемом RELIANOID Служба кластеров, поэтому любое действие, выполняемое в MASTER узел будет скопирован на SLAVE узел, но любое действие, выполненное в SLAVE узел, связанный с Let's Encrypt, будет отброшен во избежание десинхронизации.

Автоматическое продление сертификатов Let's Encrypt #

RELIANOID Плагин Let's Encrypt можно настроить для ежедневной проверки необходимости обновления какого-либо сертификата. В случае, если система автоматически обновляет данный сертификат и он используется какой-либо фермой, ферма будет автоматически перезапущена, чтобы применить сертификат. изменять.

Чтобы настроить автоматическое обновление, сделайте следующее:

Создайте следующий файл cron /etc/cron.d/letsencryptz со следующим содержанием:

root@zva6k:~# cat /etc/cron.d/letsencryptz 00 00 * * * root /usr/local/relianoid/bin/letsencryptz --renew --forcerestart --vip 192.168.101.31

В этой конфигурации проверка продления будет выполняться ежедневно в 00:00 (полночь). И VIP 192.168.101.31 будет использоваться в порту 80 для целей проверки от Let's Encrypt System.

Референсы #

Некоторые ссылки, используемые в этой статье:

Webroot и Certbot
Как работает Let's Encrypt

📄 Загрузите этот документ в формате PDF #

    EMAIL: *

    Powered by BetterDocs