База знаний BILLmanager

Ошибки при выпуске или замене SSL для платформы

Статья описывает решения возможных ошибок, которые могут возникнуть при выпуске или замене сертификата платформы.

Failed to start new daemon with ssl

При замене сертификата не запускается веб-сервер ihttpd. В логе /usr/local/mgr5/var/ihttpd.log ошибка вида:

Nov 23 06:57:11 [1680:1] main WARNING Failed to listen: ip '10.10.11.15', port '443'. Reason: Failed to start new daemon with ssl

Причина ошибки — неверно собранная цепочка сертификатов.

Для исправления полностью удалите сертификаты, а затем добавьте их заново по инструкции:

    1. Удалите сертификаты в интерфейсе платформы по пути Адреса панели Сертификаты → кнопка Удалить.
    2. Подключитесь к серверу с платформой по SSH.
    3. Удалите сертификаты из директории /usr/local/mgr5/etc/. Названия файлов можно проверить в конфигурационном файле /usr/local/mgr5/etc/ihttpd.conf. Пример секции listen с названиями файлов сертификата:

      listen {
      ip 10.10.11.15
      port 1515
      redirect
      certkey etc/ihttpd_cert.key
      cert etc/ihttpd_cert.crt
      cacert /etc/ssl/certs/ipa-ca.pem
      }
      Пояснения
    4. Добавьте сертификат через интерфейс: Настройки Адреса панели Сертификаты → кнопка Добавить → выберите Существующий. Сертификат и цепочка будут отсортированы автоматически.

Попытка выпустить сертификат для платформы приводит к ошибке "Не удалось получить сертификат Let's Encrypt". В логах — ошибка, которая говорит о том, что каталог www/letsencrypt/.well-known/acme-challenge уже существует:

Type: 'file' Object: 'symlink_exists' Value: 'www/letsencrypt/.well-known/acme-challenge'

Ошибка возникает, если сертификат был удалён принудительно. Сертификат перевыпускается автоматически, но если удалить его, а затем добавить снова, система выдаст ошибку, что каталог www/letsencrypt/.well-known/acme-challenge уже существует.

Чтобы решить проблему:

  1. Подключитесь к серверу с платформой по SSH.
  2. Удалите оставшиеся файлы старого сертификата командами:

    rm -rf /usr/local/mgr5/etc/scripts/acmesh/ca/
    rm -rf /usr/local/mgr5/etc/scripts/acmesh/my.domain.ru/
    rm -rf /usr/local/mgr5/www/letsencrypt/.well-known/
    Пояснения
  3. Повторно выпустите сертификат.

Сертификат не перевыпускается автоматически

Если сертификат не перевыпустился автоматически, проверьте лог /usr/local/mgr5/var/billmgr_acme_sh.log на наличие ошибок. Если в логе нет информации о некорректном поведении или ошибках, причина может быть в устаревшем скрипте acme.sh, расположенном по пути /usr/local/mgr5/etc/scripts/acmesh/.

Чтобы решить проблему:

  1. Подключитесь к серверу с платформой по SSH.
  2. Проверьте версию скрипта: 

    /usr/local/mgr5/etc/scripts/acmesh/acme.sh --version
  3. Если версия ниже v3.0.5, обновите скрипт:

    /usr/local/mgr5/etc/scripts/acmesh/acme.sh --upgrade