Не удалось создать учетную запись CloudPools, или учетная запись CloudPools недоступна с сообщением: clapi error: CL_SSL_CACERT
Summary: Не удалось создать учетную запись CloudPools с ошибкой сертификата.
Symptoms
При попытке создать учетную запись CloudPools возникает следующая ошибка:
Account Create Failed. The CloudPools account did not create due to the following error: Account validation failed to connect to remote server: clapi error: CL_SSL_CACERT; Peer certificate cannot be authenticated with known CA certificates.
Такая же ошибка появляется после модернизации до OneFS 8.2 при просмотре существующих учетных записей CloudPools.
Cause
Создание учетной записи CloudPools завершается сбоем с этой ошибкой, если корневые сертификаты установлены неправильно. То же самое с промежуточными самозаверяющими сертификатами
В случае модернизации до OneFS v8.2 это происходит в результате переноса статического списка сертификатов в новое хранилище. В это хранилище не входят сертификаты, установленные (например, сертификат ECS) в системе для CloudPools, и которые не входят в этот список.
Resolution
Для устранения проблемы выполните описанные ниже действия.
-
Выполните следующую команду, чтобы выгрузить список сертификатов с сервера CloudPools в текстовый файл:
openssl s_client -connect <cloudpool_server>:443 -showcerts -certform PEM > cert.txt
-
В cert.txt необходимые компоненты сертификата находятся между строками, начинающимися с:
-----BEGIN CERTIFICATE----- AND -----END CERTIFICATE----- -
Скопируйте последний сертификат, так как он должен быть сертификатом ROOT CA от центра подписи. Скопируйте и вставьте все, начиная с -----BEGIN CERTIFICATE----- и заканчивая -----END CERTIFICATE----- в новый файл с именем /ifs/.ifsvar/modules/cloud/cacert/<some_cloudpools_root_cert.pem>.
-
Измените каталог на местоположение сертификата.
cd /ifs/.ifsvar/modules/cloud/cacert
-
Вычислите хэш файла сертификата с помощью команды:
openssl x509 -hash -noout -in <some_cloudpools_root_cert>.pem
-
Создайте символьную ссылку на сертификат с помощью выходных данных команды хэш-значения:
ln -s <some_cloudpools_root_cert>.pem <hash_value>.suffix
Примечание:<Суффикс> начинается с 0. В случае коллизии существующих имен файлов символьной ссылки используйте следующий номер в качестве суффикса. -
Перейдите в учетную запись CloudPools и снова создайте процесс.
Если используется версия OneFS 8.2 или выше, при необходимости выполните следующие действия:
-
Выполните команду импорта сертификата, стоя на пути «/ifs/.ifsvar/modules/cloud/cacert».
Пример:
# ls -lh 94d536c0.0 lrwxr-xr-x 1 root wheel 39B Jun 3 10:35 94d536c0.0 -> cert_cloud account.pem # isi certificate authority import --certificate-path=cert_account-URI.pem --description="ECS CA" --name=ecs_cert
-
Найдите ecs_cert , добавленный в список центров сертификации, с помощью команды:
#isi certificate authority list
-
Перезапустите isi_cpool_d сервис с помощью команды:
# isi services -a isi_cpool_d disable
Подождите 30 секунд и выполните команду:
# isi services -a isi_cpool_d enable
-
С помощью команды убедитесь, что облачная учетная запись доступна и что находится в нормальном состоянии
# isi cloud accounts view <account-name>
Additional Information
Если администратор включает проверку SSL-сертификата при создании учетной записи или изменяет этот параметр с «skip» на «not skip», на серверах должны быть правильно установлены корневые сертификаты. В противном случае CloudPools не смогут подключиться к поставщикам облачных услуг и будет создан SSL_CACERT_ERROR.
Если учетная запись настроена на проверку сертификата SSL, проверка выполняется каждый раз, когда CloudPools подключается к поставщику облачных услуг этой учетной записи, и проверка может завершиться сбоем. Когда это происходит, создается событие журнала событий кластера, подобное 1100000009 CPOOL_CERTIFICATE_ERROR.
Если поставщик услуг хранения установил самозаверяющий сертификат, он также должен отображаться в цепочке сертификатов при подключении к серверу. Найдите самозаверяющий сертификат, так как он является корневым сертификатом для аутентификации сервера.
Для предустановки в кластер CloudPools требуются только корневые сертификаты. Если на сайте развернут прокси-сервер SSL, может потребоваться также получить и установить промежуточные сертификаты.
Если копия корневого сертификата имеет формат, отличный от формата в формате PEM, перед установкой выполните преобразование PEM с помощью команд OpenSSL.