Уже многие знают о вайлдкард, и многие используют бесплатные вайлдкард
сертификаты. Но есть пару вещей, с которыми жизнь ещё проще. Одна из них
Lexicon - штука объеденяющая многие хостинг
и днс провайдеры для единообразного управления ими. Обычно, в целях автоматизации
получения сертификатов.
Ссылки
- https://chameth.com - docker-automatic-nginx-proxy
- https://github.com/lukas2511/dehydrated
- https://github.com/AnalogJ/lexicon
- готовый образ с включенной поддержкой неймчипа - https://hub.docker.com/r/tomfun/lexicon-dehydrated-namecheap/
Следуя ридми из letsencrypt-lexicon докера можно настроить всё что нужно просто изменив
параметры переменных окружения. У меня потребность в использовании простого и
известного способа получения вайлдкард ссл сертификатов для namecheap
Example Namecheap
Конечно, я не вписал токены как надо, и получил такую замечательную ошибку
как видно, тут нет ничего о том, что я забыл вписать токены или ещё что-то…
И так, нам нужны токены = API Access
Read manaul
To enable API access, follow these steps on the appropriate environment:
- Login to your Namecheap account.
- Go to the Profile > Tools menu.
- Scroll down to the Business & Dev Tools section. Click MANAGE, next to Namecheap API Access.
- Toggle ON/OFF, read our Terms of Service, enter your account password.
After enabling API access, you will be allotted an APIUsername and APIKey. Your access to the API is authenticated using these elements.
And restrictions
OR
- have at least 20 domains in your account;
- have at least $50 on your account balance;
- have at least $50 spent within last 2 years.
И так, мы видим ряд приятных ограничений, кроме того, мне пришлось просить
поддержку ускорить процесс (я прождал пару выходных), мне повезло, и я прошёл по
какому-то из пунктов.
И ещё, я пользовался этим делом на свой страх и риск, получив эти токены, софтина
легко может всё сломать (настройки днс, почта и т.д.), но, у меня обошлось без проблем
Создаём файлы для запуска команд
Я не хотел сильно рисковать, и настроил первым делом тестовый аккаунт летсенкрипт
(не сендбокс API чипы - оно категорически не подойдёт для получения сертификатов)
вам это не нужно будет, но с исторической точки зрения, вот файл ./test-run.sh
:
а вот для реальной жизни вам понадобится run.sh
:
|
|
как видно, создовать эти файлы и не нужно, можно просто помнить на память токен
и каждый раз вводить его ;)
Домены для получения сертификатов
для дегидрата нормой является файл, это очень удобно, ведь его можно сшаблонизировать
но я не стал этим заморачиваться, хотя есть и готовые сборки
у меня это выглядит так data/domains.txt
:
– одна строка = один сертификат (мне просто один нужен, можно добавить строчку
с другим доменом). Если вы хотите тестовые сертификаты, то путь
test-data/domains.txt
содержит то же самое у меня
Получим новый аккаунт на letsencrypt через модный dehydrated
Конечно, я хотел использоваться старые сертификаты, и есть тулза для конвертации
но там есть некоторые сложности, и вообще, нафиг старые ключи, просто создадим акк
Register letsencrypt account, accept license/use terms
Получение новых сертификатов
неожиданно, но вот так:
Обновить сертификаты
а это правда неожиданно, но
|
|
Crontab
Как то так sudo crontab -e
Спасибо замечательному сайту для нубов вроде меня, которые не шарят как конфигурить крон
(не проверял, но верю)
Итого мы получили невероятно простой способ получения ССЛ вайлд кард сертификатов
(и обычных тоже) не через связку с нжинксом (веб рут и прочие режимы) а полнеценный
надёжный стендэлоун режим, как и сказано было раньше, простым добавлением новой строки
в известный файл, мы получаем новый сертификат по новому пути.
Почему не использовать готовые связки? - Ну, таким связкам надо давать
привелигированные права, а это решение простое как двери, и может запускаться на машине
за глубоким NATом, не имея прямого доступа к веб серверу.
docker всему голова!
P.S.
Образ мне нужен был из-за банальной мелочи: оказывается, нужно поставить
дополнительные питоновские зависимости, иначе не взлетит, как мы видели, ошибки
тут user friendly