Nginx + bash + letsencrypt | Динамические SSL сертификаты
6 000 руб. за проект
Нужно реализовать функционал выпуска/перевыпуска 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 то тогда отдаем именно его
Вот решение для динамических сертификатов поидеи его. можно взять за основу
Например есть домен 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 года
назад
В заказе есть исполнитель
При переводе заказа из архивного в актуальный, текущий исполнитель будет снят с задачи.
Выберите тип сделки
С безопасной сделкой вы всегда сможете вернуть средства, если что-то пойдет не так. С простой сделкой вы самостоятельно договариваетесь с исполнителем об оплате и берете на себя решение конфликтов.