Nikt nie dotknął profilu, a jednak ten sam klient domaga się teraz frazy hasła do klucza prywatnego przy każdym uruchomieniu. Gdy ta zmiana pojawia się w ciągu kilku dni po aktualizacji dystrybucji, prawdopodobną przyczyną jest właśnie aktualizacja: OpenSSL 3 uporządkował obsługę algorytmów, a klucz, który stara biblioteka czytała bez problemu, może stać się nieczytelny bez zmiany choćby jednego bajtu. Wykonuj kontrole po kolei, bo dwie z nich wyglądają identycznie, jeśli patrzy się tylko na monit.

Pierwsze pytanie brzmi, czy klucz jest zaszyfrowany, a drugie, czy ten build potrafi go odszyfrować. Zmiany konfiguracji mają sens dopiero wtedy, gdy znane są obie odpowiedzi.

Sprawdź, czy klucz jest zaszyfrowany

Odczytaj pierwszą linię pliku, a następnie pozwól bibliotece go przeanalizować, bo nazwa pliku niczego nie dowodzi. Blok PEM z etykietą ENCRYPTED PRIVATE KEY to zaszyfrowany PKCS#8, a starszy RSA PRIVATE KEY blok z Proc-Type: 4,ENCRYPTED to forma tradycyjna, i oba oczekują frazy hasła. Niezaszyfrowany PRIVATE KEY blok nie powinien jej w ogóle żądać. Uruchom analizę jako konto, które jest właścicielem pliku, bo problem z uprawnieniami daje inny i znacznie mniej ciekawy błąd.

Jeśli klucz naprawdę nie jest zaszyfrowany, a klient nadal pyta, przestań patrzeć na kryptografię i sprawdź, czy profil wskazuje plik askpass, który usługa może jeszcze odczytać.

Sprawdź, czy ten build potrafi go odszyfrować

OpenSSL 3 podzielił obsługę algorytmów na dostawców, a zestaw starszych szyfrów znajduje się teraz w dostawcy legacy, a nie w domyślnym. Klucz zaszyfrowany jednym z tych szyfrów pozostaje ważny, ale biblioteka załadowana bez dostawcy legacy nie potrafi go odszyfrować. U niektórych klientów objawia się to powtarzającym się monitem, u innych twardym błędem zaraz po frazie hasła.

Przeanalizuj ten sam klucz dwa razy tą samą binarką: najpierw tylko z dostawcą domyślnym, potem z legacy i domyślnym oboma zażądanymi w wierszu poleceń. Jeśli druga próba się udaje tam, gdzie pierwsza zawiodła, diagnoza opiera się na dowodach, a nie na czasie aktualizacji. Jeśli obie zawodzą identycznie, fraza hasła jest błędna albo plik jest uszkodzony, i żadne ustawienie dostawcy nie naprawi ani jednego, ani drugiego.

Sprawdź najwęższą dostępną poprawkę

Preferuj zmianę ograniczoną do klienta zamiast obejmującej cały system. Niektóre buildy 2.6 akceptują opcję profilu, która ładuje oba dostawców dla procesu tego demona, więc potwierdź dyrektywę w podręczniku dla swojej dokładnej wersji, zanim na niej polegasz; edycja systemowego openssl.cnf zamiast tego dotyczy każdego programu OpenSSL na hoście. Węższe ustawienie jest też znacznie łatwiejsze do wycofania po ponownym zakodowaniu klucza.

Nie usuwaj frazy hasła, żeby monit zniknął. To zamienia chronione poświadczenie w plik tekstowy i po cichu zmienia ryzyko każdej kopii zapasowej, kopii i paczki wsparcia, w której się pojawi. Istotna różnica jest między kluczem, który potrzebuje swojej frazy hasła, a kluczem, którego ta biblioteka nie potrafi odszyfrować.

Sprawdź kontekst usługi, a następnie zakoduj ponownie

Gdy klucz można odblokować, zaszyfruj go ponownie aktualnym algorytmem aby zależność zniknęła. Zapisz nowy plik nowoczesnym szyfrem, sprawdź, że się analizuje, zaktualizuj profil i zachowaj starą kopię tylko do chwili, gdy połączenie się powiedzie. Nigdy nie umieszczaj frazy hasła w wierszu poleceń, gdzie każdy lokalny użytkownik może ją odczytać z listy procesów. Usuń stary plik dopiero po tym, jak nowy połączy się z konta usługi, a nie tylko z twojej powłoki.

Następnie sprawdź jednostkę, która faktycznie uruchamia klienta. Klucz czytelny w twojej powłoce może być nieczytelny dla usługi działającej na innym koncie lub z zaostrzonym ustawieniem katalogu domowego.

Zapisz ustawienie dostawcy obok profilu i trzymaj przy nim test dwóch poleceń. Gdy późniejsza aktualizacja usunie dostawcę legacy, uruchom ten test ponownie, aby sprawdzić, czy klucz nadal go potrzebuje, czy profil można wycofać z tego obejścia.

Monit to objaw z co najmniej trzema przyczynami, a tylko jedna z nich to brakująca fraza hasła.

Powiązane artykuły