• 0

(Пере)выпуск wildcard сертификатов Let's Encrypt для своего домена


Question

Recommended Posts

  • 0
On 7/21/2020 at 3:23 PM, Arabezar said:

Зделал

Надо ж так лохануться, только что заметил... Конечно же «Сделал». Даже не припомню, когда так ошибался ))). Прошу прощения.

Link to post
Share on other sites
  • 0
On 12/1/2020 at 10:16 PM, sotaka said:

Я так понял, это не сработает для обновления сертификата https://letsencrypt.org/ или https://www.sslforfree.com/ ?

Ринулся было пробовать, но английский не знаю, на всякий случай перечитал с переводчиком и остыл.

Собственно, для сервиса Let's Encrypt это и было сделано.

Что не получилось, пишите сюда. Там делать то нечего по большому счёту, просто важно разобраться…

Link to post
Share on other sites
  • 0
В 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).

image.thumb.png.3bb9352bbfffba485ccd043bdfcde330.png

Но реакция та же. Правда, не перезагружался. Что делаю не так?
 

Link to post
Share on other sites
  • 0
6 часов назад, sotaka сказал:

Хотелось бы всё таки сделать автоматическое продление сертификатов. К сожалению, на первой же строке споткнулся:


ash-4.3# git clone https://github.com/acmesh-official/acme.sh.git
ash: git: command not found

Поставил git (GitLab).

 

Но реакция та же. Правда, не перезагружался. Что делаю не так?
 

Нужно просто поставить Git  из комюнити

Снимок.JPG

  • Like 2
Link to post
Share on other sites
  • 0

После старта задания в 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 создал, всё равно.

Link to post
Share on other sites
  • 0
On 4/11/2021 at 9:46 PM, sotaka said:

После старта задания в DSM, в логах пишет:



Каталог /usr/local/acme.sh/certs создал, всё равно.

Так в результате сертификат выпустился успешно?

Задание запускали по описанию п.3?

Какой DNS используется для доменов?

Edited by Arabezar
Link to post
Share on other sites
  • 0
3 часа назад, Arabezar сказал:

Так в результате сертификат выпустился успешно?

Задание запускали по описанию п.3?

Какой DNS используется для доменов?

Я пропустил п.2, сунул скрипт из п.3 в планировщик, но ничего не вышло, так что оставил это дело. Я не знаю английского и совсем не понимаю сути. С ручным способом вроде понятно, но это не осилил. Старею. :(

Спасибо всем кто пытался помочь.

Link to post
Share on other sites
  • 0
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 by sotaka
Link to post
Share on other sites
  • 0
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 не возился, их необходимо изучать отдельно, главное - терпение.

Link to post
Share on other sites
  • 0

Насколько я знаю, вайлдкард сертификаты требуют подтверждения владения домена через dns запись. Чтобы автоматически работало, нужно чтоб ваш dns провайдер поддерживал апи по которому можно вносить изменения. С nic.ua так не получилось у меня.

Link to post
Share on other sites
  • 0

Это случилось. Пришло оповещение мне от привычного www.sslforfree.com, что сертификат скоро кончится. При попытке его обновить там - попросили денежку. Тогда я отозвал действующий сертификат и попытался как обычно создать новый, на что сайт мне сказал "погодите пока пройдёт 90 дней с момента создание предыдущего сертификата и тогда..." т.е. в итоге остался я без сертификата и пришлось разбираться с этой темой.

Добился того, что таки получил сертификат и вручную его засунул в DSM. Всё ок, но мне этого показалось мало и я полез изучать как это автоматизировать. В итоге, после старта скрипта деплоя обновлённого сертификата, я получаю в Панели управления-Безопасность-Сертификаты - ДВА сертификата с одинаковым именем. Прежний и новый. При запуске скрипта деплоя ещё раз - их становится соответственно ТРИ. :)

Я просто хочу добиться того, чтобы обновлялся существующий сертификат, а скрипт почему-то плодит их, под одинаковыми именами. Как это победить?

Link to post
Share on other sites
  • 0
7 hours ago, sotaka said:

Добился того, что таки получил сертификат и вручную его засунул в DSM. Всё ок, но мне этого показалось мало и я полез изучать как это автоматизировать. В итоге, после старта скрипта деплоя обновлённого сертификата, я получаю в Панели управления-Безопасность-Сертификаты - ДВА сертификата с одинаковым именем. Прежний и новый. При запуске скрипта деплоя ещё раз - их становится соответственно ТРИ. :)

Я просто хочу добиться того, чтобы обновлялся существующий сертификат, а скрипт почему-то плодит их, под одинаковыми именами. Как это победить?

Важно понимать каждый Ваш шаг.

«засунул в DSM» - какие шаги? Этого должно быть уже достаточно, нечего больше автоматизировать.

Зачем скрипт деплоя запускать? Вы сертификат и так уже «засунули в DSM».

Обновление текущего сертификата будет работать только после успешного логина в службу выдачи и выпуска сертификата, именно он и будет обновляться. Нельзя взять произвольный сертификат и обновить его.

Link to post
Share on other sites
  • 0

Поясню.

После того как я получил скриптом новый сертификат и подсунул его DSM - разумеется подождал несколько дней, для чистоты эксперимента. И затем запустил скрипт деплоя, чтобы явно обновить этот же сертификат. И он обновляется, но появляется  в списике сертификатов как отдельный, не замещая существующий.

Можно ли как-то дать команду из скрипта - именно заменить такой-то сертификат по умолчанию, на свой?

Edited by sotaka
Link to post
Share on other sites
  • 0
5 hours ago, sotaka said:

После того как я получил скриптом новый сертификат и подсунул его DSM - разумеется подождал несколько дней, для чистоты эксперимента. И затем запустил скрипт деплоя, чтобы явно обновить этот же сертификат. И он обновляется, но появляется  в списике сертификатов как отдельный, не замещая существующий.

Можно ли как-то дать команду из скрипта - именно заменить такой-то сертификат по умолчанию, на свой?

Несколько дней ждать необходимо только если часто производился выпуск (не деплой) сертификатов СЦ.

Деплой (если мы говорим о п.4 описанной мной процедуры) не уменьшает количество попыток СЦ выпуска сертификатов.

Для первого запуска перед скриптом необходимо указать (export) пользователя и пароль (указано после п.4) в формате из файла deploy/synology_dsm.sh: SYNO_Username, SYNO_Password.

SYNO_Certificate должен содержать название конфигурации, которая как раз будет заменена, если существует или создана, если нет.

Link to post
Share on other sites
  • 0

В скрипте присутствует строка

export SYNO_Certificate="*.mydomen.ru"

но почему-то происходит не замена сертификата, а именно их дублирование. Сертификат выпускался для *.mydomen.ru.

Link to post
Share on other sites
  • 0
10 hours ago, sotaka said:

В скрипте присутствует строка

export SYNO_Certificate="*.mydomen.ru"

но почему-то происходит не замена сертификата, а именно их дублирование. Сертификат выпускался для *.mydomen.ru.

Попробуйте назвать в Syno без звёздочки - это всего лишь описание.

P.S. У меня в Syno серт назван по шаблону mydomain.ru, всё работает

P.P.S. Скрипт деплоя писал не я, исправлять (тратить время) смысла не вижу, достаточно просто переименовать описание сертификата ))

Edited by Arabezar
Link to post
Share on other sites
  • 0
22 часа назад, Arabezar сказал:

Попробуйте назвать в Syno без звёздочки - это всего лишь описание.

P.S. У меня в Syno серт назван по шаблону mydomain.ru, всё работает

P.P.S. Скрипт деплоя писал не я, исправлять (тратить время) смысла не вижу, достаточно просто переименовать описание сертификата ))

Спасибо, вроде оно.

Наваял тут инструкцию, для таких как я. Хотелось бы поделиться, чтобы людям было проще. Не знаю как правильно это выложить, чтоб удобно было читать. Пока так.

Обновление_сертификатов_SSL.pdf

Link to post
Share on other sites
  • 0

НЕ АКТУАЛЬНО: acme.sh перевели по умолчанию на openssl, всё работает через API, у меня нет времени с этим разбираться. Буквально месяц назад всё ещё работало, а теперь обновить или заново получить новый сертификат этим же способом не вышло. Прошу отписаться если кто-то победил.

 

Edited by sotaka
Link to post
Share on other sites
  • 0
В 28.07.2021 в 13:54, sotaka сказал:

НЕ АКТУАЛЬНО: acme.sh перевели по умолчанию на openssl, всё работает через API, у меня нет времени с этим разбираться. Буквально месяц назад всё ещё работало, а теперь обновить или заново получить новый сертификат этим же способом не вышло. Прошу отписаться если кто-то победил.

 

в среду обновил вручную /usr/local/acme.sh/acme.sh --config-home /root/.acme.sh --renew-all (как и всегда пришлось заменить txt домена на новые)

Link to post
Share on other sites
  • 0
1 час назад, alexku44 сказал:

в среду обновил вручную /usr/local/acme.sh/acme.sh --config-home /root/.acme.sh --renew-all (как и всегда пришлось заменить txt домена на новые)

У меня не сработал скрипт обновления, уже не помню на что он ругался, пришлось всё снести и по шагам повторить процедуру получения. После того как была создана новая txt запись, скрипт на команду с --renew ответил о "неправильном URL... возвращён результат работы скрипта не 200" и прекратил работу. Пробовал по всякому, с тем же результатом. Ссылка в логах отсылает в какие-то англоязычные дебри, где говориться о каких-то ключах и т.п. В общем, забил разбираться. Называется "упростили".

Link to post
Share on other sites
  • 0

Где-нить в сентябре придётся опять перевыпускать сертификат - отпишусь.

У меня основная проблема была не с перевыпуском сертификата, здесь всё работало нормально, а с запуском второго скрипта, копирующего новый сертификат во все приложения системы, из-за 2FA (двухфакторной авторизации), ибо header при обновлении сертификата тоже меняется, соответственно, скрипт надо каждый раз корректировать, что не удобно. Решением был бы вызов копирования сертификата средствами командной строки, а не не через WebAPI.

Link to post
Share on other sites
  • 0

а к чему все это - DSM и так сама умеет получать lets encrypt серты и регулярно из обновлять

Если только дело в Wildcard - то у меня dsm для 3х поддоменов сама и запрашивает.

А если надо больше так не проще купить годовой - явно же что больше 2-3 поддоменов это коммерческое использование.

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.