Tworzenie konta CloudPools nie powiodło się lub konto CloudPools jest nieosiągalne z komunikatem: clapi error: CL_SSL_CACERT
Summary: Tworzenie konta CloudPools nie powiodło się z błędem certyfikatu.
Symptoms
Próba utworzenia konta CloudPools zwraca następujący błąd:
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.
Ten sam błąd pojawia się również po uaktualnieniu do OneFS 8.2 podczas przeglądania istniejących kont CloudPools.
Cause
Tworzenie konta CloudPools kończy się niepowodzeniem z tym błędem, jeśli certyfikaty główne nie są poprawnie zainstalowane. To samo dotyczy pośrednich certyfikatów z podpisem własnym
W przypadku uaktualnienia OneFS do wersji 8.2 dzieje się tak podczas migracji statycznej listy certyfikatów do nowego magazynu. Ten magazyn nie zawiera certyfikatów, które zostały zainstalowane (takich jak certyfikat ECS) w systemie dla CloudPools i nie jest częścią tej listy.
Resolution
Aby rozwiązać ten problem, wykonaj następujące czynności.
-
Uruchom następujące polecenie, aby zrzucić listę certyfikatów z serwera CloudPools do pliku tekstowego:
openssl s_client -connect <cloudpool_server>:443 -showcerts -certform PEM > cert.txt
-
Od cert.txt potrzebne składniki certyfikatu znajdują się między wierszami, które zaczynają się od:
-----BEGIN CERTIFICATE----- AND -----END CERTIFICATE----- -
Skopiuj ostatni certyfikat, ponieważ powinien to być certyfikat ROOT CA z urzędu podpisującego. Skopiuj i wklej wszystko z certyfikatu -----BEGIN----- do certyfikatu -----END----- do nowego pliku o nazwie /ifs/.ifsvar/modules/cloud/cacert/<some_cloudpools_root_cert.pem>.
-
Zmień katalog na lokalizację certyfikatu.
cd /ifs/.ifsvar/modules/cloud/cacert
-
Oblicz skrót pliku certyfikatu przy użyciu polecenia:
openssl x509 -hash -noout -in <some_cloudpools_root_cert>.pem
-
Utwórz dowiązanie symboliczne do certyfikatu przy użyciu danych wyjściowych polecenia hash value:
ln -s <some_cloudpools_root_cert>.pem <hash_value>.suffix
Uwaga:<Sufiks> zaczyna się od 0. W przypadku kolizji istniejącej nazwy pliku dowiązania symbolicznego należy użyć następnej liczby jako sufiksu. -
Przejdź przez konto CloudPools i ponownie utwórz proces.
Jeśli wersja OneFS to 8.2 lub nowsza, wykonaj następujące kroki zgodnie z potrzebami:
-
Uruchom polecenie importu certyfikatu, gdy stoisz na ścieżce "/ifs/.ifsvar/modules/cloud/cacert".
Przykład:
# 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
-
Znajdź ecs_cert dodane do listy uprawnień za pomocą polecenia:
#isi certificate authority list
-
Uruchom ponownie usługę isi_cpool_d poleceniem:
# isi services -a isi_cpool_d disable
Poczekaj 30 sekund, a następnie uruchom polecenie:
# isi services -a isi_cpool_d enable
-
Potwierdź, że konto w chmurze jest osiągalne i że stan jest OK za pomocą polecenia:
# isi cloud accounts view <account-name>
Additional Information
Jeśli administrator włączy weryfikację certyfikatu SSL podczas tworzenia konta lub zmiany tej opcji z "skip" na "not skip", serwery muszą mieć poprawnie zainstalowane certyfikaty główne. W przeciwnym razie CloudPools nie może połączyć się z dostawcami usług chmurowych i zostanie wygenerowany SSL_CACERT_ERROR.
Jeśli konto jest skonfigurowane do przeprowadzania weryfikacji certyfikatu SSL, weryfikacja jest wykonywana za każdym razem, gdy CloudPools łączy się z dostawcą rozwiązań chmurowych tego konta, a weryfikacja może zakończyć się niepowodzeniem. W takim przypadku tworzone jest zdarzenie dziennika zdarzeń klastra, takie jak 1100000009 CPOOL_CERTIFICATE_ERROR.
Jeśli dostawca usług pamięci masowej zainstalował certyfikat z podpisem własnym, powinien on również pojawić się w łańcuchu certyfikatów po nawiązaniu połączenia z serwerem. Znajdź certyfikat z podpisem własnym, ponieważ jest to certyfikat główny do uwierzytelniania serwera.
Tylko certyfikaty główne są wymagane do wstępnej instalacji w klastrze CloudPools. Jeśli lokacja wdraża serwer proxy SSL, może być konieczne również uzyskanie i zainstalowanie certyfikatów pośrednich.
Jeśli kopia certyfikatu głównego jest w formacie innym niż format zakodowany w formacie PEM, przed zainstalowaniem należy użyć poleceń OpenSSL, aby przeprowadzić konwersję PEM.