Перейти к основному содержимому
Версия: 1.12

Поиск и устранение проблем (Troubleshooting)

Ошибки nginx: [emerg] cannot load certificate

В случае, если у вас не открывается Sage UI или какой-либо другой веб-интерфейс в системе Sage — необходимо проверить логи Nginx.

Ошибка вида:

nginx: [emerg] cannot load certificate "/path/to/cert.pem":
BIO_new_file() failed
(SSL: error:02001002:system library:fopen:No such file or directory)

означает, что проблема с сертификатом — файл сертификата отсутствует, либо Nginx нет прав на его чтение.

Решение: проверка файла сертификата

Необходимо проверить наличие сертификата по указанному пути, а также корректность прав доступа на файл:

ls -la /path/to/cert.pem

Проверить конфигурацию Nginx можно с помощью команды:

nginx -t

Ошибка вида:

nginx: [emerg] cannot load certificate key "/path/to/key.pem":
SSL_CTX_use_PrivateKey_file("/path/to/key.pem") failed
(SSL: error:0480006C:PEM routines:get_name:no start line:Expecting: ANY PRIVATE KEY)

может означать, что в файле приватного ключа находится что-то невалидное.

Решение: проверить содержимое файла приватного ключа на корректность

Необходимо проверьте содержимое файла приватного ключа на корректность командой (команда зависит от формата ключа):

# для традиционного RSA ключа
openssl rsa -in key.pem -check -noout

# для ключа в формате PKCS#8
openssl pkey -in key.pem -check -noout

# для EC ключей
openssl ec -in key.pem -check -noout

Ошибка в логах OpenSearch вида Extended key usage does not permit use for TLS client authentication

В случае, если в логах OpenSearch есть сообщения вида:

Exception during establishing a SSL connection:
...
Extended key usage does not permit use for TLS client authentication

это означает, что ваш сертификат для хостов OpenSearch выпущен без поддержки Extended Key Usage (EKU) и флага clientAuth.

Что такое EKU

Расширение Extended Key Usage определяет, для каких именно целей можно использовать сертификат. Сертификат может быть предназначен для:

  • serverAuth — только как TLS-сертификат сервера (HTTPS)
  • clientAuth — только как TLS-сертификат клиента (mTLS)
  • или обоих сразу

Если сертификат выпущен только с serverAuth, то когда OpenSearch пытается использовать его для клиентской аутентификации между нодами кластера — получаем ошибку.

Решение: выпустить сертификат с добавлением clientAuth

Для того, чтобы проверить сертификат, выполните команду:

# Посмотреть EKU сертификата
openssl x509 -in my-certificate.pem -noout -ext extendedKeyUsage

В выводе команды должен быть как serverAuth, так и clientAuth. В противном случае — такой сертификат не подходит, необходимо выпустить новый сертификат с добавлением clientAuth.