Arabezar Posted July 21, 2020 Share #1 Posted July 21, 2020 Привет всем! Зделал хук на проверку домена (DNS API) для ACME-клиента acme.sh Если у Вас есть желание потестировать - вэлкам. Процедуру описал на англоязычном форуме. Жду комментариев. Quote Link to comment Share on other sites More sharing options...
0 Arabezar Posted August 31, 2020 Author Share #2 Posted August 31, 2020 On 7/21/2020 at 3:23 PM, Arabezar said: Зделал Надо ж так лохануться, только что заметил... Конечно же «Сделал». Даже не припомню, когда так ошибался ))). Прошу прощения. Quote Link to comment Share on other sites More sharing options...
0 sotaka Posted December 1, 2020 Share #3 Posted December 1, 2020 Я так понял, это не сработает для обновления сертификата https://letsencrypt.org/ или https://www.sslforfree.com/ ? Ринулся было пробовать, но английский не знаю, на всякий случай перечитал с переводчиком и остыл. Quote Link to comment Share on other sites More sharing options...
0 Arabezar Posted December 24, 2020 Author Share #4 Posted December 24, 2020 On 12/1/2020 at 10:16 PM, sotaka said: Я так понял, это не сработает для обновления сертификата https://letsencrypt.org/ или https://www.sslforfree.com/ ? Ринулся было пробовать, но английский не знаю, на всякий случай перечитал с переводчиком и остыл. Собственно, для сервиса Let's Encrypt это и было сделано. Что не получилось, пишите сюда. Там делать то нечего по большому счёту, просто важно разобраться… Quote Link to comment Share on other sites More sharing options...
0 sotaka Posted April 11, 2021 Share #5 Posted April 11, 2021 В 24.12.2020 в 23:24, Arabezar сказал: Собственно, для сервиса Let's Encrypt это и было сделано. Что не получилось, пишите сюда. Там делать то нечего по большому счёту, просто важно разобраться… Хотелось бы всё таки сделать автоматическое продление сертификатов. К сожалению, на первой же строке споткнулся: ash-4.3# git clone https://github.com/acmesh-official/acme.sh.git ash: git: command not found Поставил git (GitLab). Но реакция та же. Правда, не перезагружался. Что делаю не так? Quote Link to comment Share on other sites More sharing options...
0 alexku44 Posted April 11, 2021 Share #6 Posted April 11, 2021 6 часов назад, sotaka сказал: Хотелось бы всё таки сделать автоматическое продление сертификатов. К сожалению, на первой же строке споткнулся: ash-4.3# git clone https://github.com/acmesh-official/acme.sh.git ash: git: command not found Поставил git (GitLab). Но реакция та же. Правда, не перезагружался. Что делаю не так? Нужно просто поставить Git из комюнити 2 Quote Link to comment Share on other sites More sharing options...
0 sotaka Posted April 11, 2021 Share #7 Posted April 11, 2021 После старта задания в DSM, в логах пишет: Running cmd: renewAll Using config home:/usr/local/acme.sh/data default_acme_server ACME_DIRECTORY='https://acme-v02.api.letsencrypt.org/directory' _ACME_SERVER_HOST='acme-v02.api.letsencrypt.org' _stopRenewOnError _set_level='2' di='/usr/local/acme.sh/certs/*.*/' Not a directory, skip: /usr/local/acme.sh/certs/*.*/ _error_level='3' _set_level='2' Каталог /usr/local/acme.sh/certs создал, всё равно. Quote Link to comment Share on other sites More sharing options...
0 Arabezar Posted April 13, 2021 Author Share #8 Posted April 13, 2021 (edited) On 4/11/2021 at 9:46 PM, sotaka said: После старта задания в DSM, в логах пишет: … Каталог /usr/local/acme.sh/certs создал, всё равно. Так в результате сертификат выпустился успешно? Задание запускали по описанию п.3? Какой DNS используется для доменов? Edited April 13, 2021 by Arabezar Quote Link to comment Share on other sites More sharing options...
0 sotaka Posted April 13, 2021 Share #9 Posted April 13, 2021 3 часа назад, Arabezar сказал: Так в результате сертификат выпустился успешно? Задание запускали по описанию п.3? Какой DNS используется для доменов? Я пропустил п.2, сунул скрипт из п.3 в планировщик, но ничего не вышло, так что оставил это дело. Я не знаю английского и совсем не понимаю сути. С ручным способом вроде понятно, но это не осилил. Старею. Спасибо всем кто пытался помочь. Quote Link to comment Share on other sites More sharing options...
0 sotaka Posted April 14, 2021 Share #10 Posted April 14, 2021 (edited) Error, can not get domain token entry *.mydomen.ru for http-01 The supported validation types are: dns-01 , but you specified: http-01 Это происходит в ответ на: /usr/local/acme.sh/acme.sh --staging --debug 2 --issue --dns ns1.beget.com -d mydomen.ru -d *.mydomen.ru --log Файлы в каталогах /cert и /data/ca появились, но я думаю что в связи с ошибкой они неликвидны. Кажется понимаю почему он в п.3 ругался на отсутствующие директории: ему нужны файлы из п.2, а там было пусто. P.S. Кажется эта ошибка как-то связана с предыдущим ручным методом получения сертификата. Edited April 14, 2021 by sotaka Quote Link to comment Share on other sites More sharing options...
0 Arabezar Posted April 15, 2021 Author Share #11 Posted April 15, 2021 On 4/13/2021 at 9:21 PM, sotaka said: Я пропустил п.2 Собснна, на этом шаге и выпускается серт, на последующем шаге он обновляется, если необходимо. 18 hours ago, sotaka said: Файлы в каталогах /cert и /data/ca появились, но я думаю что в связи с ошибкой они неликвидны. Успешным итогом будет файл fullchain.cer, но для его получения необходимо пройти второй шаг, который напрямую зависит от DNS Вашего домена. Параметр --staging указывает на тестовый сервер, на нём надо тренироваться, ибо количество запросов к реальному серверу при запросе сертификата ограничено по времени. В зависимости от Вашего DNS необходимо уметь правильно подтвердить права на Ваш домен, для которого Вы получаете сертификат. Я расширение для acme.sh делал только для Synology DNS Server. С API остальных DNS не возился, их необходимо изучать отдельно, главное - терпение. Quote Link to comment Share on other sites More sharing options...
0 T-REX-XP Posted April 15, 2021 Share #12 Posted April 15, 2021 Насколько я знаю, вайлдкард сертификаты требуют подтверждения владения домена через dns запись. Чтобы автоматически работало, нужно чтоб ваш dns провайдер поддерживал апи по которому можно вносить изменения. С nic.ua так не получилось у меня. Quote Link to comment Share on other sites More sharing options...
0 sotaka Posted April 15, 2021 Share #13 Posted April 15, 2021 Спасибо, я уже понял что мне светит все сертификаты обновлять по старинке. Quote Link to comment Share on other sites More sharing options...
0 sotaka Posted April 24, 2021 Share #14 Posted April 24, 2021 Это случилось. Пришло оповещение мне от привычного www.sslforfree.com, что сертификат скоро кончится. При попытке его обновить там - попросили денежку. Тогда я отозвал действующий сертификат и попытался как обычно создать новый, на что сайт мне сказал "погодите пока пройдёт 90 дней с момента создание предыдущего сертификата и тогда..." т.е. в итоге остался я без сертификата и пришлось разбираться с этой темой. Добился того, что таки получил сертификат и вручную его засунул в DSM. Всё ок, но мне этого показалось мало и я полез изучать как это автоматизировать. В итоге, после старта скрипта деплоя обновлённого сертификата, я получаю в Панели управления-Безопасность-Сертификаты - ДВА сертификата с одинаковым именем. Прежний и новый. При запуске скрипта деплоя ещё раз - их становится соответственно ТРИ. Я просто хочу добиться того, чтобы обновлялся существующий сертификат, а скрипт почему-то плодит их, под одинаковыми именами. Как это победить? Quote Link to comment Share on other sites More sharing options...
0 Arabezar Posted April 24, 2021 Author Share #15 Posted April 24, 2021 7 hours ago, sotaka said: Добился того, что таки получил сертификат и вручную его засунул в DSM. Всё ок, но мне этого показалось мало и я полез изучать как это автоматизировать. В итоге, после старта скрипта деплоя обновлённого сертификата, я получаю в Панели управления-Безопасность-Сертификаты - ДВА сертификата с одинаковым именем. Прежний и новый. При запуске скрипта деплоя ещё раз - их становится соответственно ТРИ. Я просто хочу добиться того, чтобы обновлялся существующий сертификат, а скрипт почему-то плодит их, под одинаковыми именами. Как это победить? Важно понимать каждый Ваш шаг. «засунул в DSM» - какие шаги? Этого должно быть уже достаточно, нечего больше автоматизировать. Зачем скрипт деплоя запускать? Вы сертификат и так уже «засунули в DSM». Обновление текущего сертификата будет работать только после успешного логина в службу выдачи и выпуска сертификата, именно он и будет обновляться. Нельзя взять произвольный сертификат и обновить его. Quote Link to comment Share on other sites More sharing options...
0 sotaka Posted April 25, 2021 Share #16 Posted April 25, 2021 (edited) Поясню. После того как я получил скриптом новый сертификат и подсунул его DSM - разумеется подождал несколько дней, для чистоты эксперимента. И затем запустил скрипт деплоя, чтобы явно обновить этот же сертификат. И он обновляется, но появляется в списике сертификатов как отдельный, не замещая существующий. Можно ли как-то дать команду из скрипта - именно заменить такой-то сертификат по умолчанию, на свой? Edited April 25, 2021 by sotaka Quote Link to comment Share on other sites More sharing options...
0 Arabezar Posted April 25, 2021 Author Share #17 Posted April 25, 2021 5 hours ago, sotaka said: После того как я получил скриптом новый сертификат и подсунул его DSM - разумеется подождал несколько дней, для чистоты эксперимента. И затем запустил скрипт деплоя, чтобы явно обновить этот же сертификат. И он обновляется, но появляется в списике сертификатов как отдельный, не замещая существующий. Можно ли как-то дать команду из скрипта - именно заменить такой-то сертификат по умолчанию, на свой? Несколько дней ждать необходимо только если часто производился выпуск (не деплой) сертификатов СЦ. Деплой (если мы говорим о п.4 описанной мной процедуры) не уменьшает количество попыток СЦ выпуска сертификатов. Для первого запуска перед скриптом необходимо указать (export) пользователя и пароль (указано после п.4) в формате из файла deploy/synology_dsm.sh: SYNO_Username, SYNO_Password. SYNO_Certificate должен содержать название конфигурации, которая как раз будет заменена, если существует или создана, если нет. Quote Link to comment Share on other sites More sharing options...
0 sotaka Posted April 25, 2021 Share #18 Posted April 25, 2021 В скрипте присутствует строка export SYNO_Certificate="*.mydomen.ru" но почему-то происходит не замена сертификата, а именно их дублирование. Сертификат выпускался для *.mydomen.ru. Quote Link to comment Share on other sites More sharing options...
0 Arabezar Posted April 25, 2021 Author Share #19 Posted April 25, 2021 (edited) 10 hours ago, sotaka said: В скрипте присутствует строка export SYNO_Certificate="*.mydomen.ru" но почему-то происходит не замена сертификата, а именно их дублирование. Сертификат выпускался для *.mydomen.ru. Попробуйте назвать в Syno без звёздочки - это всего лишь описание. P.S. У меня в Syno серт назван по шаблону mydomain.ru, всё работает P.P.S. Скрипт деплоя писал не я, исправлять (тратить время) смысла не вижу, достаточно просто переименовать описание сертификата )) Edited April 25, 2021 by Arabezar Quote Link to comment Share on other sites More sharing options...
0 sotaka Posted April 26, 2021 Share #20 Posted April 26, 2021 22 часа назад, Arabezar сказал: Попробуйте назвать в Syno без звёздочки - это всего лишь описание. P.S. У меня в Syno серт назван по шаблону mydomain.ru, всё работает P.P.S. Скрипт деплоя писал не я, исправлять (тратить время) смысла не вижу, достаточно просто переименовать описание сертификата )) Спасибо, вроде оно. Наваял тут инструкцию, для таких как я. Хотелось бы поделиться, чтобы людям было проще. Не знаю как правильно это выложить, чтоб удобно было читать. Пока так. Обновление_сертификатов_SSL.pdf Quote Link to comment Share on other sites More sharing options...
0 sotaka Posted June 28, 2021 Share #21 Posted June 28, 2021 Настраивал это на очередном сервере и заметил неточности. Изменил немного мануал, в связи с нововведениями. Обновление_сертификатов_SSL.pdf Quote Link to comment Share on other sites More sharing options...
0 sotaka Posted July 28, 2021 Share #22 Posted July 28, 2021 (edited) НЕ АКТУАЛЬНО: acme.sh перевели по умолчанию на openssl, всё работает через API, у меня нет времени с этим разбираться. Буквально месяц назад всё ещё работало, а теперь обновить или заново получить новый сертификат этим же способом не вышло. Прошу отписаться если кто-то победил. Edited July 28, 2021 by sotaka Quote Link to comment Share on other sites More sharing options...
0 alexku44 Posted July 29, 2021 Share #23 Posted July 29, 2021 В 28.07.2021 в 13:54, sotaka сказал: НЕ АКТУАЛЬНО: acme.sh перевели по умолчанию на openssl, всё работает через API, у меня нет времени с этим разбираться. Буквально месяц назад всё ещё работало, а теперь обновить или заново получить новый сертификат этим же способом не вышло. Прошу отписаться если кто-то победил. в среду обновил вручную /usr/local/acme.sh/acme.sh --config-home /root/.acme.sh --renew-all (как и всегда пришлось заменить txt домена на новые) Quote Link to comment Share on other sites More sharing options...
0 sotaka Posted July 29, 2021 Share #24 Posted July 29, 2021 1 час назад, alexku44 сказал: в среду обновил вручную /usr/local/acme.sh/acme.sh --config-home /root/.acme.sh --renew-all (как и всегда пришлось заменить txt домена на новые) У меня не сработал скрипт обновления, уже не помню на что он ругался, пришлось всё снести и по шагам повторить процедуру получения. После того как была создана новая txt запись, скрипт на команду с --renew ответил о "неправильном URL... возвращён результат работы скрипта не 200" и прекратил работу. Пробовал по всякому, с тем же результатом. Ссылка в логах отсылает в какие-то англоязычные дебри, где говориться о каких-то ключах и т.п. В общем, забил разбираться. Называется "упростили". Quote Link to comment Share on other sites More sharing options...
0 Arabezar Posted August 6, 2021 Author Share #25 Posted August 6, 2021 Где-нить в сентябре придётся опять перевыпускать сертификат - отпишусь. У меня основная проблема была не с перевыпуском сертификата, здесь всё работало нормально, а с запуском второго скрипта, копирующего новый сертификат во все приложения системы, из-за 2FA (двухфакторной авторизации), ибо header при обновлении сертификата тоже меняется, соответственно, скрипт надо каждый раз корректировать, что не удобно. Решением был бы вызов копирования сертификата средствами командной строки, а не не через WebAPI. Quote Link to comment Share on other sites More sharing options...
0 -iliya- Posted August 13, 2021 Share #26 Posted August 13, 2021 а к чему все это - DSM и так сама умеет получать lets encrypt серты и регулярно из обновлять Если только дело в Wildcard - то у меня dsm для 3х поддоменов сама и запрашивает. А если надо больше так не проще купить годовой - явно же что больше 2-3 поддоменов это коммерческое использование. Quote Link to comment Share on other sites More sharing options...
Question
Arabezar
Привет всем!
Зделал хук на проверку домена (DNS API) для ACME-клиента acme.sh
Если у Вас есть желание потестировать - вэлкам.
Процедуру описал на англоязычном форуме.
Жду комментариев.
Link to comment
Share on other sites
54 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.