Nginx + bash + letsencrypt | Динамические SSL сертификаты

6 000 руб. за проект
09 мая 2020, 19:34 • 3 отклика • 37 просмотров
Нужно реализовать функционал выпуска/перевыпуска SSL сертификата (letsEncrypt) по запросу на определенный URL, а также смежные задачи. такие как динамическое подтягивание сертификата и редирект с http на https версию (при условии что у запрашиваемого домена. есть действующий сертификат)

Например есть домен 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 то тогда отдаем именно его

Вот решение для динамических сертификатов поидеи его. можно взять за основу
Отзывы
Я остался очень доволен качеством работы Валерия, задача была непростой и имела много "подводных камней", но Валерий довел все до конца да еще и в кратчайшие сроки. На этапе тестирования я предоставил ему доступ на сервер где он отловил все оставшиеся кейсы и прихлопнул все баги. Достойный исполнитель, советую всем сотрудничать с ним.
4 года назад
Avatar r50 a6ce93fe35b158fd29ba0e8681c918c22117160e9586a56eee4ffbc20df9bda1
Фрилансер
Все отлично. Рассказал подробно, что нужно. Даже показал примеры скриптов с похожим функионалом и некоторую документацию задаче. Рекомендую к сотрудничеству.
4 года назад