Nginx + bash + letsencrypt | Динамические SSL сертификаты
Например есть домен example.com и он сейчас без ssl сертификата
1. Открываем http://example.com/get-cert
Nginx запускает башскрипт который выполняет выпуск letsencrypt сертификата для *.example.com (wildcard) (если сертификат был выпущен ранее, то bash скрипт чекает expired этого сертификата и если до экспирация остается менее 3х дней то перевыпускает его, а если до экспирации еще далеко то просто возвращает статус 200)
если сертификат выпущен успешно nginx возвращает 200 статус, если нет то 422 с описанием ошибки в теле
2. Открываем http://example.com, nginx смотрит есть ли сертификат для этого домена в. Файловой системе и если есть, то делает редирект на https://example.com, а если нет то отображает hello-world
3. При открытии https://example.com nginx динамически подтягивает сертификат из файловой системы и отдает условный hello-world
На месте example.com может быть любой домен второго или третьего уровня
В п.2 и п 3 важно учесть такой сценарии:
Если у нас выпущен wildcard сертификат для example.com, а сейчас запрос идет на test.example.com, то мы отдаем сертификат от example.com т.к. он wildcard,
но если был выпущен конкретный сертификат для test.example.com то тогда отдаем именно его
Вот решение для динамических сертификатов поидеи его. можно взять за основу