Как настроить AutoTLS для подстановочных доменов в Iris GoLang Framework - PullRequest
0 голосов
/ 27 июня 2018

Использование * (звездочки) в качестве подстановочного знака не работает:


app.Run(iris.AutoTLS(":443", "*.example.com", "mail@example.com")) 

Дело о вводе поддоменов, руководство работает:


app.Run(iris.AutoTLS(":443", "sub1.example.com sub2.example.com sub3.example.com", "mail@example.com")) 

Существует множество поддоменов, которые не должны контролироваться вручную. Также, если поместить каждый поддомен в список, он будет огромным и не будет работать с учетом ограничений letsencrypt.

Придерживался этого примера для метода подстановочных субдоменов: https://github.com/kataras/iris/blob/master/_examples/subdomains/wildcard/main.go

Если субдомены удалены и если на хосте есть файл сертификата, субдомен будет работать, хотя его нет в списке белого списка.


app.Run(iris.AutoTLS(":443", "sub3.example.com", "mail@example.com")) 

Таким образом, я предполагаю, что функция autocert должна выполняться для каждого субдомена при посещении.


func dynamicSubdomainHandler(ctx iris.Context) {
    username := ctx.Subdomain()
    ctx.Writef("Hello from dynamic subdomain path: %s, here you can handle the route for dynamic subdomains, handle the user: %s", ctx.Path(), username)

XXX autocert( "username.example.com", "mail@example.com")) XXX

}

EDIT: Ограничения letsencrypt - 20 сертификатов на зарегистрированный домен в неделю, но это позволяет объединить до 100 имен в один сертификат.

Итак, идея, описанная выше, не является правильным решением, так как это должна быть новая функция со счетчиком. Затем эта функция должна заполнить один сертификат субдоменами до 100 и запросить новый сертификат, который будет подан до 100 и так далее. Таким образом, мы можем получить 2000 поддоменов в неделю, 100 имен по 20 сертификатов в неделю. Это должно быть реализовано в Iris, так как есть субдомены AutoTLS и Wildcard, но они не работают вместе. Подстановочные знаки не являются подстановочными, если вам нужно установить значение где-либо.

...