Как обрабатывать декларативную конфигурацию Nginx с помощью Let's Encrypt?

Я управляю экземпляром nginx, который выполняет балансировку нагрузки http и TLS-терминацию.

До сих пор я создавал сертификаты TLS вручную, используяcertbot --nginxи выбираем хост, для которого я хотел бы арендовать сертификат.

Я хотел бы, чтобы мой сервер опрашивал репозиторий git, который служит единственным источником достоверной информации о моей конфигурации nginx (GitOps).

Как мне выполнить автоматическое создание и обновление сертификатов ACME TLS для моей конфигурации nginx (желательно с использованием сертификатов Let's Encrypt)?

Полагаю, понадобится что-то (сертбот?), чтобы:

  • определить, каким блокам серверов нужны SSL-сертификаты,
  • запустить вызов ACME,
  • сохраните сертификат в заданном месте или предскажите местоположение по умолчанию при написании конфигурации nginx.
  • продлить сертификат до истечения срока его действия

Как справиться с этой задачей?

      http {

  # upstreams pointing to kubernetes clusters
  upstream development {
    server 192.168.XX.XX;
    server 192.168.XX.XX;
    server 192.168.XX.XX;
  }

  upstream staging {
    server 192.168.XX.XX;
    server 192.168.XX.XX;
    server 192.168.XX.XX;
  }

  # example config for one application running on development cluster
  server {
    server_name dev.app1.example.com;
    proxy_set_header Host $host;

    location / {
      proxy_pass https://development;
    }
        
    listen 443 ssl;
    ssl_certificate /path/to/fullchain.pem;   # how would I generate those without manual intervention?
    ssl_certificate_key /path/to/privkey.pem; # how would I generate those without manual intervention?
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
  }
}

Сноска. Я знаю, что я мог бы просто выполнить балансировку нагрузки TCP и обработать завершение TLS восходящим потоком, но я хотел бы управлять одним балансировщиком нагрузки, который может выполнять маршрутизацию на основе пути к различным восходящим потокам (также пик SSL кажется немного неприятным).

TLDR: Я ищу декларативный способ управления моей конфигурацией nginx, который также позаботится об управлении сертификатами.

0 ответов

Другие вопросы по тегам