Назад | Перейти на главную страницу

Как продлить SSL-сертификаты letsencrypt на Synology DSM?

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

Я попробовал интерфейс командной строки, но ничего не вышло

sudo syno-letsencrypt renew-all -v

DEBUG: [syno.example.com] is not a subdomain of [my-syno.synology.me]
DEBUG: DDNS Curl: [https://ddns.synology.com/main.php?_=letsencrypt%2Fdelete&hostname=syno.example.com&myds_id=696423&auth_key=...&serial=1590MHN443201&txt=]
DEBUG: GET Request: https://ddns.synology.com/main.php?_=letsencrypt%2Fdelete&hostname=syno.example.com&myds_id=696423&auth_key=...&serial=1590MHN443201&txt=
DEBUG: Dns01 challenge: Teardown [{"code":"badparam"}].
DEBUG: DNS challenge failed, reason: { "error": 203, "msg": "Challenge setup is failed.", "file": "client.cpp:278"}
DEBUG: Normal challenge failed, reason: { "error": 107, "msg": "syno.example.com: Could not connect to syno.example.com", "file": "client.cpp:315"}
DEBUG: failed to open port 80.
DEBUG: close port 80.
DEBUG: Failed to renew /usr/syno/etc/certificate/_archive/8mSVmw/. { "error": 101, "msg": "failed to open port 80.", "file": "client.cpp:472"}

В качестве примечания, я проверил, что порт 80 "syno.example.com" доступен извне и загружает Web Station.

Я даже попытался остановить веб-станцию ​​перед запуском команды обновления, но, похоже, это не влияет на выполнение команды обновления. (/usr/syno/bin/synopkg stop WebStation).

Одно интересное замечание заключалось в том, что как только я остановил веб-станцию, вместо того, чтобы не отвечать на порт 80, Synology решила перенаправить ее на порт 5000/5001.

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

Итак, на нескольких веб-сайтах упоминается, что при обновлении через CLI вам не нужно открывать порт 80/443. В моих журналах несколько раз я получал сообщение «не удалось открыть порт 80», но все же смог обновить свой сертификат. Обратите внимание, что я делать открыть порт 80, и при переходе на: 80 я вижу страницу «Веб-станция включена. Чтобы завершить настройку вашего веб-сайта, ...» - страница.

Вы можете просмотреть журналы следующим образом: sudo grep letsencrypt / var / log / messages

Попробуйте обновить свой конкретный сайт (а не все). Обратите внимание, что у меня был запущен веб-сервер (я не останавливал его перед выполнением следующего). sudo syno-letsencrypt новый сертификат -d syno.example.com -m site@example.com -v

(попробуйте -vv) для получения более подробной информации.

Если вы дойдете до строки «DEBUG: save to files» в выходных данных, проверьте, действителен ли сертификат в DSM. Если он все еще недействителен, загрузите сертификат через DSM и сравните его с путем, который показан после «cert_path» в отладочной информации (последняя строка должна фактически читать «успех», но в моем случае это не так).

Если сертификаты не совпадают, вероятно, он был загружен, но не обновил «копию», которую использует синология. Чтобы обойти это, используйте DSM, выберите «Добавить новый сертификат», затем «Импорт» и выберите 3 файла, показанные в «cert_path». Нажмите ОК, и Synology перезапустит «WebStation» (этого могло хватить только для перезапуска веб-сервера).

У меня был поддомен aaa.mydomain.com, для которого он не хотел создавать сертификат. В конце концов я удалил сертификат для этого из Synology DSM и сохранил только основной домен www.mydomain.com, что действительно сработало.

Примечание: существует ограничение в 20 запросов на сертификат - после этого давайте зашифруем блоки на неделю.