HA в домашнем самохостинге на примере reverse proxy и не только

Наружу не торчит

У меня 2 сценария

  1. LetsEncript
    1.1. CertBot при помощи DNS Сhallenge получает сертификат и загружает его в OpenBao. Я использую wildcard сертификаты domain.com + *.domain.com
    1.2. Vault Agent видит, что обновился ключ сертификата и выгружает его в файл, при необходимости дергает сервис для того, чтобы он подтянул конфиг c сертификатом новым
    1.3. Certbot при выпуске или перевыпуске сертификата дергает вебхук Semaphore UI
    1.4. Semaphore UI запускает Ansible playbook с указанием домена и в таске происходит деплой сертификата в микотик и HomeAssistant
  2. Self Signed Certs
    2.1. В OpenBao выпускается корневой сертификат, который надо импортировать на все узлы
    2.2. В OpenBao можно при помощи веб интерфейса или клиента сгенерировать сертификаты под произвольный домен, с подписью CA openbao. При этом, можно клиенту через политики разрешить определенные домены или опции
    2.3. В OpenBao включен Acme сервер и сервисы могут выпускать себе сертификаты при помощи CertBot

Подробнее тут описывал Централизованный выпуск SSL сертификатов для смохостинга

С точки зрения Traefik у меня получается, что

  1. Основная информация по конфигурации находится в гите и деплоится в docker-compose
  2. Динамическая информация самому реверс-проксированию находится в consul кластере и traefik ее подтягивает при обновлении
  3. Сертификаты подкладывает vault agent в ввиде файлов и он их просто использует без выпуска

Таким образом я легко могу добавлять новые узлы: появился миник и за пару кликов туда разворачивается собственный экземпляр трафика со всеми примочками

В первой версии конфигурации я пробовал хранить сертификаты в consul, но в процессе выяснил, что в новой версии этот функционал убрали т.к. были проблемы с синхронизацией: при появлении нового домена каждый traefik пытался выпустить свой сертификат и положить его в общее хранилище, в итоге они отказались от этого и каждый traefik выпускает и сохраняет сертификаты самостоятельно, что может привести к выходу за лимиты.

Поэтому я и реализовал схему, когда выпуском сертификатов занимается один сервис, а потребители их подтягивают при необходимости.

1 лайк