Створення облікового запису CloudPools не вдалося, або обліковий запис CloudPools недоступний через помилку повідомлення: clapi: 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. Якщо існує зіткнення існуючих імен файлу symlink, використовуйте наступне число як суфікс. -
Пройдіть через обліковий запис 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
-
Переконайтеся, що Cloud Account доступний і що цей стан підходить за допомогою команди:
# isi cloud accounts view <account-name>
Additional Information
Якщо адміністратор увімкнено перевірку SSL-сертифікатів при створенні облікового запису або зміні цієї опції з «пропустити» на «не пропустити», сервери повинні мати коректно встановлені кореневі сертифікати. Інакше CloudPools не підключаються до хмарних провайдерів, і створюється SSL_CACERT_ERROR.
Коли обліковий запис налаштований для перевірки SSL-сертифікатів, перевірка виконується щоразу, коли CloudPools підключається до хмарного провайдера цього акаунта, і валідація може не вдатися. Коли це відбувається, створюється подія журналу подій кластера, подібна до 1100000009 CPOOL_CERTIFICATE_ERROR.
Якщо провайдер сховища встановив самопідписаний сертифікат, він також має відображатися в ланцюжку сертифікатів при підключенні до сервера. Знайдіть самопідписаний сертифікат, оскільки це кореневий сертифікат для автентифікації сервера.
Лише кореневі сертифікати мають бути попередньо встановлені на кластер CloudPools. Якщо сайт розгортає SSL-проксі-сервер, може знадобитися отримати та встановити проміжні сертифікати.
Якщо копія кореневого сертифіката знаходиться у форматі, відмінному від PEM-закодованого формату, використовуйте команди OpenSSL для конвертації PEM перед встановленням.