Рейтинг:0

Ejabberd: не удалось декодировать из формата DER

флаг cn

Среда:

версия ejabberd: 20.7 Эрланг версия: 10.6 ОС: Windows Server 2019 Установлено из: официальный бинарный установщик Ошибки из error.log/crash.log 2021-06-21 07:40:31.041 [критический] <0.105.0>@ejabberd_app:start:71 Не удалось запустить приложение ejabberd: неверное значение параметра listen->4->certfile: не удалось прочитать файл PEM 'C: /ProgramData/ejabberd/conf/test.pem': в строке 41: не удалось декодировать из формата DER

Бег [|] = rr(публичный_ключ), {ok, _} = приложение:ensure_all_started(public_key), {хорошо, данные} = файл:read_file("C:/Users/admin/Desktop/test.pem"), [{'PrivateKeyInfo', Der, }|] = public_key:pem_decode(данные), #'PrivateKeyInfo'{privateKey = Key} = public_key:der_decode('PrivateKeyInfo', Der), public_key:der_decode('RSAPrivateKey', Ключ). дает: ** ошибка исключения: нет совпадения правого значения #'RSAPrivateKey'{ версия = 'два простых', модуль = ..., публичный экспонент = 65537, частныйЭкспонент = ..., простое1 = ..., простое2 = ..., показатель1 = ..., показатель2 = ..., коэффициент = ... , другиеPrimeInfos = asn1_NOVALUE}

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

Я использую сертификат с самоподписанным центром сертификации Windows, как и мой колледж.

https://github.com/processone/ejabberd/issues/2488 похоже похожая проблема, но я не совсем уверен. Однако только с закрытым ключом я могу запустить службу, но не с полной цепочкой, так как ошибка в строке 41 возникает при запуске публичного сертификата сервера. При использовании только закрытого ключа я, конечно, не могу подключиться из-за:

2021-06-21 08:32:46.742 [ошибка] <0.564.0>@ejabberd_http:init:122 ОТЧЕТ О АВАРИИ Процесс <0.564.0> с 0 соседними узлами завершился сбоем по причине: несоответствие правого значения {error,no_certfile} в ejabberd_http:init/3 строка 122 2021-06-21 08:32:46.742 [ошибка] <0.526.0>@ejabberd_http:init:122 Супервизор ejabberd_http_sup запустил дочерний элемент undefined с {ejabberd_http,start_link,undefined} в <0.564.0> выход с причиной несоответствия правое значение {error,no_certfile} в ejabberd_http:init/3, строка 122 в контексте child_terminated

Однако с деактивацией tls он, очевидно, может запуститься.

Спасибо за помощь, Лукас

P.S. Я разместил этот вопрос на Гитхаб тоже и поболтал с одним парнем, но он не смог мне помочь.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.