Описание проблемы

При создании звонка произошла ошибка 500: Conference creation failed: Internal server error.

Ошибка говорит о том, что при попытке создать звонок (создать конференцию), бэкенд не смог авторизоваться в Медиа сервере.

Пример отображения ошибки:

Ошибка создания конференции Не удалось начать звонок, проверьте доступность сервиса управления и попробуйте переподключиться При создании звонка произошла ошибка 500, Conference creation failed: Internal server error [Кнопка] ЗАКРЫТЬ

Пример лог файла ucall_back.log:

May 27 17:26:47 r7team ucall_back(i2)[1770]: (Use node --trace-warnings ... to show where the warning was created)
May 27 17:26:47 r7team ucall_back(i2)[1770]: 2025-05-27 05:05:47: ERROR POST /api/v2/conference 172.16.16.11| {"type":"TypeError","message":"fetch failed: unable to verify the first certificate","stack":"TypeError: fetch failed\n at Object.fetch (node:internal/deps/undici/undici:11118:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async MindClient.createConference (/opt/team/back/src/infrastructure/mind/MindClientAsync.js:128:12)\n at async CallService.create (/opt/team/back/src/service/call/CallService.js:195:17)\n at async /opt/team/back/src/WebAPI/v2/Controllers/Conference/ConferenceController.js:36:20\ncaused by: Error: unable to verify the first certificate\n at TLSSocket.onConnectSecure (node:_tls_wrap:1538:34)\n at TLSSocket.emit (node:events:513:28)\n at TLSSocket._finishInit (node:_tls_wrap:952:8)\n at ssl.onhandshakedone (node:_tls_wrap:733:12)"}
May 27 17:26:47 r7team ucall_back(i2)[1770]: 2025-05-27 05:05:47: INFO 500 POST /api/v2/conference request errored {"type":"Error","message":"failed with status code 500","stack":"Error: failed with status code 500\n at onResFinished (/opt/team/back/node_modules/pino-http/logger.js:114:39)\n at ServerResponse.onResponseComplete (/opt/team/back/node_modules/pino-http/logger.js:177:14)\n at ServerResponse.emit (node:events:525:35)\n at onFinish (node:_http_outgoing:950:10)\n at callback (node:internal/streams/writable:555:21)\n at afterWrite (node:internal/streams/writable:500:5)\n at afterWriteTick (node:internal/streams/writable:487:10)\n at process.processTicksAndRejections (node:internal/process/task_queues:81:21)"}

Ошибка unable to verify the first certificate.

Данная ошибка возникает в момент проверки цепочки. Она означает, что Node.js получил сертификат сервера (the first certificate в цепочке) и не смог успешно проследить его до действительного и доверенного корневого сертификата.

Ошибка 500.

Невозможность установить защищенное соединение с внутренним сервисом, из-за ошибки верификации сертификата, является критической внутренней ошибкой для бэкенда, что, в свою очередь, приводит к возврату HTTP статуса 500 (Internal Server Error) на внешний запрос создания конференции.


Решение

1. Авторизуйтесь с повышением привилегий (su - или sudo -i) на сервере управления Р7 Команды.

2. Выполните проверку файла /opt/team/cacerts/trusted.pem:

cat /opt/team/cacerts/trusted.pem

3. Файл должен включать в себя всю цепочку сертификатов.

Сертификат для CN=volav.ru (ваш конечный сертификат).
Сертификат для CN=R10, O=Let’s Encrypt (промежуточный сертификат).
Сертификат для CN=ISRG Root X1, O=Internet Security Research Group (корневой сертификат).

Пример вывода:

-----BEGIN CERTIFICATE-----
MIIE9zCCA9+gAwIBAgISBnyA7N0Nw6cjJWYnJLCfjU9NMA0GCSqGSIb3DQEBCwUA
MDMxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQwwCgYDVQQD
EwNSMTAwHhcNMjUwNTI3MTE1MzI1WhcNMjUwODI1MTE1MzI0WjATMREwDwYDVQQD
Ewh2b2xhdi5ydTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANGqQfyt
deDTtsVOdHFdSkGbFU1YB0/MDpCui6rHALCitmwpgomwxTElO9Q5yDeltRjWhGdN
/WzVqrhpZnBiR+doSOMfhfob2HFEmbh88Ut9csnUC9uRYoyGBJ4KRZggqu6//XMr
oJWzAjnSk0qaBaz0MWyZAVgNO4IU/moava78zj1lHwzn8EQKGBgV7ZY9Unb1e9T/
GVZyfkoI0jCFoBkeEx15VkDTkRRwPj71MaCj3SFcspunT2CHL/SYLkY0JziujC1F
0AqM/o9w1bY5HJ2By84N/vzBpmtRp82YMdY22QZCmuBOSlbvsbLx1+CNS86rz4uS
+lhit4AnixB1pasCAwEAAaOCAiMwggIfMA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUE
FjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQU
n2AiU+Y1GEhWNirLeoylL16g/74wHwYDVR0jBBgwFoAUu7zDR6XkvKnGw6RyDBCN
ojXhyOgwMwYIKwYBBQUHAQEEJzAlMCMGCCsGAQUFBzAChhdodHRwOi8vcjEwLmku
bGVuY3Iub3JnLzAfBgNVHREEGDAWggoqLnZvbGF2LnJ1ggh2b2xhdi5ydTATBgNV
HSAEDDAKMAgGBmeBDAECATAuBgNVHR8EJzAlMCOgIaAfhh1odHRwOi8vcjEwLmMu
bGVuY3Iub3JnLzc4LmNybDCCAQMGCisGAQQB1nkCBAIEgfQEgfEA7wB2AN3cyjSV
1+EWBeeVMvrHn/g9HFDf2wA6FBJ2Ciysu8gqAAABlxHMrtkAAAQDAEcwRQIgY58W
/rlmkimvcwZlwuL6ZhplmHJaiM1a9DzDRwUVlVcCIQD+sjp1vb90cNPlZFzpCT9u
vxYwx6hOORIESS09LOotQwB1AA3h8jAr0w3BQGISCepVLvxHdHyx1+kw7w5CHrR+
Tqo0AAABlxHMtnIAAAQDAEYwRAIgDyIZvsBp/oOqWtaCCefX8ohDXsm5PBSHSdoA
HXWpxRoCIE35s5m/PTxDapffr7mK3osgIx4gRwT1BMviv1A3q0AUMA0GCSqGSIb3
DQEBCwUAA4IBAQDIQ4gI6YpFPR20n+sUJdKyvvulN+deVnduQRFFSHh1fl4Y9YJB
4Db0guPs84lVLvnBgEKCNy2guZwC0MFED3i+uvNJ4hgWyiwyY0sBzO2xIUFthuZV
heh+HtCOoDw+a23ZmVhFZuA1XriLiFnduZHCR4RoGqVPHaCoUMEc+WdQH8gMh+Tq
7ayoOkhsFoSEwipoo0leaeWiaG4WMKWkVfcIzyW1JXy6FE46F1L5sdcWGZvxUPJS
AUralgdpivvNyb3NAFVn+8PZsNu3197AP36xJf1eZ+k4p0rcUQNMOEN/Nmg4c+5d
tUMKEnU1bW5axgZ09kBcQDh/VtxICAfuw6G5
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFBTCCAu2gAwIBAgIQS6hSk/eaL6JzBkuoBI110DANBgkqhkiG9w0BAQsFADBP
MQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFy
Y2hhR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBYMTAeFw0yNDAzMTMwMDAwMDBa
Fw0yNzAzMTIyMzU5NTlaMDMxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBF
bmNyeXB0MQwwCgYDVQQDEwNSMTAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQDPV+XmxFQS7bRH/sknWHZGUCiMHT6I3wWd1bUYKb3dtVq/+vbOo76vACFL
YlpaPAEvxVgD9on/jhFD68G14BQHlo9vH9fnuoE5CXVlt8KvGFs3Jijno/QHK20a
/6tYvJWuQP/py1fEtVt/eA0YYbwX51TGu0mRzW4Y0YCF7qZlNrx06rxQTOr8IfM4
FpOUurDTazgGzRYSespSdcitdrLCnF2YRVxvYXvGLe48E1KGAdlX5jgc3421H5KR
mudKHMxFqHJV8LDmowfs/acbZp4/SItxhHFYyTr6717yW0QrPHTnj7JHwQdqzZq3
DZb3EoEmUVQK7GH29/Xi8orIlQ2NAgMBAAGjgfgwgfUwDgYDVR0PAQH/BAQDAgGG
MB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDATASBgNVHRMBAf8ECDAGAQH/
AgEAMB0GA1UdDgQWBBS7vMNHpeS8qcbDpHIMEI2iNeHI6DAfBgNVHSMEGDAWgBR5
tFnme7bl5AFzgAiIyBpY9umbbjAyBggrBgEFBQcBAQQmMCQwIgYIKwYBBQUHMAKG
Fmh0dHA6Ly94MS5pLmxlbmNyLm9yZy8wEwYDVR0gBAwwCjAIBgZngQwBAgEwJwYD
VR0fBCAwHjAcoBqgGIYWaHR0cDovL3gxLmMubGVuY3Iub3JnLzANBgkqhkiG9w0B
AQsFAAOCAgEAkrHnQTfreZ2B5s3iJeE6IOmQRJWjgVzPw139vaBw1bGWKCIL0vIo
zwzn1OZDjCQiHcFCktEJr59L9MhwTyAWsVrdAfYf+B9haxQnsHKNY67u4s5Lzzfd
u6PUzeetUK29v+PsPmI2cJkxp+iN3epi4hKu9ZzUPSwMqtCceb7qPVxEbpYxY1p9
1n5PJKBLBX9eb9LU6l8zSxPWV7bK3lG4XaMJgnT9x3ies7msFtpKK5bDtotij/l0
GaKeA97pb5uwD9KgWvaFXMIEt8jVTjLEvwRdvCn294GPDF08U8lAkIv7tghluaQh
1QnlE4SEN4LOECj8dsIGJXpGUk3aU3KkJz9icKy+aUgA+2cP21uh6NcDIS3XyfaZ
QjmDQ993ChII8SXWupQZVBiIpcWO4RqZk3lr7Bz5MUCwzDIA359e57SSq5CCkY0N
4B6Vulk7LktfwrdGNVI5BsC9qqxSwSKgRJeZ9wygIaehbHFHFhcBaMDKpiZlBHyz
rsnnlFXCb5s8HKn5LsUgGvB24L7sGNZP2CX7dhHov+YhD+jozLW2p9W4959Bz2Ei
RmqDtmiXLnzqTpXbI+suyCsohKRg6Un0RC47+cpiVwHiXZAW+cn8eiNIjqbVgXLx
KPpdzvvtTnOPlC7SQZSYmdunr3Bf9b77AiC/ZidstK36dRILKz7OA54=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQEBBQAw
TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4
WhcNMzUwNjA0MTEwNDM4WjBPMQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJu
ZXQgU2VjdXJpdHkgUmVzZWFyY2hhR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBY
MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK3oJHP0FDfzm54rVygc
h77ct984kIxuPOZXoHj3dcKi/vVqbvYATyjb3miGbESTtrFj/RQSa78f0uoxmyF+
0TM8ukj13Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7iS4+3mX6U
A5/TR5d8mUgjU+g4rk8Kb4Mu0UlXjIB0ttov0DiNewNwIRt18jA8+o+u3dpjq+sW
T8KOEUt+zwvo/7V3LvSye0rgTBIlDHCNAymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyH
B5T0Y3HsLuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ4Q7e2RCOFvu396j3x+UC
B5iPNgiV5+I3lg02dZ77DnKxHZu8A/lJBdiB3QW0KtZB6awBdpUKD9jf1b0SHzUv
KBds0pjBqAlkd25HN7rOrFleaJ1/ctaJxQZBKT5ZPt0m9STJEadao0xAH0ahmbWn
OlFuhjuefXKnEgV4We0+UXgVCwOPjdAvBbI+e0ocS3MFEvzG6uBQE3xDk3SzynTn
jh8BCNAw1FtxNrQHusEwMFxIt4I7mKZ9YIqioymCzLq9gwQbooMDQaHWBfEbwrbw
qHyGO0aoSCqI3Haadr8faqU9GY/rOPNk3sgrDQoo//fb4hVC1CLQJ13hef4Y53CI
rU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV
HRMBAf8EBTADAQH/MB0GA1UdDgQWBBR5tFnme7bl5AFzgAiIyBpY9umbbjANBgkq
hkiG9w0BAQsFAAOCAgEAVR9YqbyyqFDQDLHYGmkgJykIrGF1XIpu+ILlaS/V9lZL
ubhzEFnTIZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ
3BebYhtF8GaV0nxvwuo77x/Py9auJ/GpsMiu/X1+mvoiBOv/2X/qkSsisRcOj/KK
NFtY2PwByVS5uCbMiogziUwthDyC3+6WVwW6LLv3xLfHTjuCvjHIInNzktHCgKQ5
ORAzI4JMPJ+GslWYHb4phowim57iaztXOoJwTdwJx4nLCgdNbOhdjsnvzqvHu7Ur
TkXWStAmzOVyyghqpZXjFaH3pO3JLF+l+/+sKAIuvtd7u+Nxe5AW0wdeRlN8NwdC
jNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZAJzVc
oyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq
4RgqsahDYVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPA
mRGunUHBcnWEvgJBQl9nJEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57d
emyPxgcYxn/eR44/KJ4EBs+lVDR3veyJm+kXQ99b21/+jh5Xos1AnX5iItreGCc=
-----END CERTIFICATE-----

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

а. Подготовьте файл trusted.pem, который включает в себя всю цепочку сертификатов по примеру из пункта 3.

б. Запустите инсталлятор, сервера управления команды и выберите сервисное меню:

При создании звонка ошибка 500. Сервисное меню инсталлятора.

в. Перейдите в меню исправления ошибок:

При создании звонка ошибка 500. Меню исправления ошибок.

г. Выберите пункт меню импортировать корневой сертификат:

При создании звонка ошибка 500. Пункт меню импортировать корневой сертификат.

д. Добавьте путь до файла из пункта a:

При создании звонка ошибка 500. Путь до файла trusted.pem.

е. Выберите хранилище ключей, обычно «по умолчанию»:

При создании звонка ошибка 500. Выбор хранилища ключей.

ё. Введите пароль от хранилища ключей:

При создании звонка ошибка 500. Ввод пароля от хранилища ключей.

ж. Выполните перезагрузку сервисов:

При создания звонка ошибка 500. Перезагрузка сервисов.

з. Если при выходе из инсталлятора видны проблемы запуска скриптов остановки и запуска сервисов, выполните перезагрузку ОС:

При создании звонка ошибка 500. Проблемы запуска скриптов.

Диагностика корректности добавления сертификатов

1. Признак того, что сертификаты установились в контейнер это наличие записей Certificate was added to keystore в выводе скрипта при выходе из инсталлятора:

При создании звонка ошибка 500. Подтверждение записи сертификатов в контейнер.

2. Проверьте наличие созданного файла. Этот файл будет являться копией файла который вы создавали в пункте 4.a

cat /opt/team/cacerts/trusted.pem

3. Также можно убедиться в наличии сертификатов в контейнере если использовался контейнер по умолчанию (проверка сертификатов с префиксом r7team_). Должно выводиться 3 записи, имена сертификатов обозначены в строке Alias name:

sudo keytool -list -v -keystore "/etc/ssl/certs/adoptium/cacerts" -storepass changeit | grep -A 20 "^Alias name: r7team_"

Или:

sudo keytool -list -v -keystore "/usr/lib/jvm/temurin-8-jdk-amd64/jre/lib/security/cacerts" -storepass changeit | grep -A 20 "^Alias name: r7team_"

Найти реальный путь Java можно так:

readlink -f $(which java)

Или:

update-alternatives --list java

Пример вывода:

/usr/lib/jvm/temurin-8-jdk-amd64/bin/java

Проверить файл cacerts можно с помощью команды:

ls -l /usr/lib/jvm/temurin-8-jdk-amd64/jre/lib/security/cacerts

Команда выводит подробную информацию о файле cacerts и символическую ссылку:

lrwxrwxrwx 1 root root 31 Nov  3  2022 /usr/lib/jvm/temurin-8-jdk-amd64/jre/lib/security/cacerts -> /etc/ssl/certs/adoptium/cacerts
Была ли полезна статья?
Позвольте нам стать лучше