Как стать автором
Обновить

Комментарии 8

НЛО прилетело и опубликовало эту надпись здесь

Acme dns в виде кастомного днс сервера — так себе штука. Гораздо надёжнее отделегировать зону на какой-нибудь днс, который имеет апи для LE — route53, cloudflare etc. Зато не будет голова болеть от отказоустойчивости, защите днса

Это хорошее замечание, но далеко не все заказчики с ним согласны (по объективным или не очень) причинам.

Возможно вам будет интересно посмотреть на решения вроде traefik.
https://docs.traefik.io/v1.7/user-guide/docker-and-lets-encrypt/
Помимо получения le сертификата через http challenge, он умеет использовать разные dns провайдеры для acme challenge через API. К примеру cloudflare из статьи.


  • Он умеет service discovery в docker/k8s.
    Таким образом вам не нужно полнимать ns и из коробки будет работать получение wildcard сертификатов на базе cloudflare ns.
    Как плюшка мы к примеру на базе traefik тоже держим стейджи, только у нас каждая ветка поднимается, а не несколько окружений, и мы проставляем для них кастомный header — x-robots позволяющую выключить сайт из индекса без необходимости изменений в контейнер приложения. Но мы все равно отдельно сделали сайт — https://nodeart.io, а отдельно стейджи на https://stage.nodeart.app который никак не должен клеится с основным (на тот случай если заголовков будет не достаточно)

Traefik пока тестируем, сразу v2. Но он же вроде как только в докер умеет проксировать, а основная масса проектов на dedicated серверах без контейнеров. А для контейнеров — да, он хорош.

Он умеет проксировать во что угодно. Не только в контейнеры, но и просто в сервисы. Главная штука в том, что действительно трефик раскрывается именно при наличии механизма сервис Дискавери, а его, действительно, проще всего получить, засунув все в контейнеры


Ну, и отмечу, что traefik v1. для меня выглядит более понятным и простым, чем traefik v2. Очень много чего во второй версии поменяли…

Согласен, первая версия для меня тоже удобнее.

Действительно во что угодно умеет!
Подключил provider: file, и описал конфигурацию в yml примерно так:
Code
http:
services:
app:
loadBalancer:
servers:
- url: "http://192.168.0.103:8080"
routers:
app:
entryPoints:
- "http"
rule: "Host(`app.domain.tld`)"
service: "app"
duplicati-secure:
app:
- "https"
rule: "Host(`app.domain.tld`)"
tls:
certResolver: default
service: "app"


Как ни странно — работает.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории