Сервисы RX используют разные сертификаты защиты данных
«Signature validation failed. Unable to match key» в журнале сервиса хранилищ и «401 unauthorized» в журнале Worker в Directum RX: у сервисов разные сертификаты Data Protection (DATA_PROTECTION_CERTIFICATE_THUMBPRINT). Перестаёт работать обмен с контрагентами, онлайн-редактор, доступ к хранилищу.
Что это значит
Сервисы RX подписывают внутренние токены и cookie одним сертификатом защиты данных (Data Protection), который задаётся параметрами DATA_PROTECTION_CERTIFICATE_THUMBPRINT, DATA_PROTECTION_CERTIFICATE_FILE и DATA_PROTECTION_CERTIFICATE_FILE_PASSWORD. Если у сервисов разные сертификаты, один не может проверить подпись другого: сервис хранилищ пишет Signature validation failed. Unable to match key, а вызывающий сервис получает 401 unauthorized.
По справке вендора так перестаёт работать электронный обмен с контрагентами: фоновый процесс получения сообщений в Worker получает 401. Тот же параметр, по справке, нужен онлайн-редактору: без него сервис не может проверить cookie пользователя.
Как проверить
На всех серверах сравнить значения DATA_PROTECTION_CERTIFICATE_THUMBPRINT, DATA_PROTECTION_CERTIFICATE_FILE и DATA_PROTECTION_CERTIFICATE_FILE_PASSWORD в конфигурации всех сервисов и проверить, что файл сертификата есть по указанному пути.
Что сделать
- Выровнять параметры на всех серверах и во всех сервисах.
- Если файла сертификата нет, скопировать его с другого сервера или сгенерировать командой
./do.sh generate_data_protection_cert_from_config(Linux) илиdo generate_data_protection_cert_from_config(Windows). - Перезапустить сервисы.
Ошибка повторяется?
Запустите Диагностика: за полминуты он покажет состояние базы, брокера, поиска и сервера. С отчётом разберём причину за 30 минут бесплатного созвона.
Написать