Błąd rejestru Easy-RSA w Windows: sprawdź widok rejestru
Ten komunikat rejestru to nieudane wyszukiwanie narzędzi, a nie zepsuty CA. Porównaj widoki 32-bitowy i 64-bitowy, zanim edytujesz plik wsadowy lub PKI.
Plik wsadowy zatrzymuje się z komunikatem „System nie może znaleźć określonego klucza lub wartości rejestru”, a wszyscy zakładają, że urząd certyfikacji jest zepsuty. Nie jest, a przynajmniej jeszcze nie: skrypt zawiódł podczas szukania oprogramowania, zanim poprosił Easy-RSA o cokolwiek z kluczem. Ta kolejność ma znaczenie, bo oznacza, że naprawa jest problemem wyszukiwania, a PKI jest tylko widzem. Przeczytanie zawodnego wiersza to cała diagnoza i zajmuje mniej czasu niż jakiekolwiek obejście.
Błąd pojawia się, zanim CA zostanie dotknięty
Stare pliki wsadowe Easy-RSA 2 lokalizują OpenSSL lub instalację OpenVPN przez odpytywanie rejestru, a następnie ustawiają zmienne na podstawie tego, co znajdą. Gdy zapytanie nic nie zwraca, skrypt przerywa działanie, zanim wykona się jakakolwiek operacja certyfikatu.
Komunikat o kluczu rejestru jest więc dowodem o środowisku skryptu, a nie o katalogu CA.
Dwa widoki rejestru, jeden plik wsadowy
Proces 32-bitowy i proces 64-bitowy mogą widzieć różne widoki rejestru, a plik wsadowy, który zakłada jeden z nich, może pominąć wpis istniejący w drugim. Te porównania tylko do odczytu pokazują różnicę dla starego klucza, którego używają niektóre stare skrypty:
reg query "HKLM\SOFTWARE\OpenVPN" /reg:32
reg query "HKLM\SOFTWARE\OpenVPN" /reg:64
Dokumentacja reg query opisuje selektory widoku. Uruchom oba w tym samym kontekście co zawodny skrypt, bo widok zależy od sposobu uruchomienia procesu, a także od flag. Jeśli wpis istnieje tylko w jednym widoku, przed zmianą czegokolwiek porównaj wskazywaną ścieżkę z zainstalowanymi narzędziami. Klucz, który istnieje, ale wskazuje stary katalog instalacji, to inna usterka niż brakujący klucz.
Jeśli żaden z widoków nie ma wpisu, instalator nigdy go nie utworzył, a ręczne wytworzenie wartości nie sprawi, że narzędzia zaczną działać.
Nie dodawaj /reg:64 bezwarunkowo
Kuszącą poprawką jest dodanie selektora 64-bitowego do każdego zapytania i przejście dalej. W niektórych instalacjach to jest poprawne, a w innych wysyła skrypt do widoku, który naprawdę nic nie ma.
Zmieniaj wyszukiwanie dopiero po zobaczeniu, który widok zawiera oczekiwaną wartość.
Wykrycie nie jest naprawą PKI
Ten błąd nie dowodzi, że certyfikat CA, klucz podpisujący, plik numerów seryjnych lub baza unieważnień są uszkodzone. Uruchomienie clean-all skopiowanego ze starego poradnika zniszczyłoby zupełnie inny zestaw obiektów, a wyszukiwanie pozostałoby zepsute. Trzymaj obie czynności osobno w głowie i w zgłoszeniu. Jeśli później operacja certyfikatu zawiedzie, oceń ją na podstawie jej własnych dowodów.
Zrób kopię zapasową katalogu CA przed każdym eksperymentem, nawet takim, co do którego masz pewność, że jest tylko do odczytu.
Przejście na Easy-RSA 3 to migracja
Utrzymywana instalacja powinna używać własnego launchera i modelu konfiguracji bieżącego pakietu, a Easy-RSA 3 nie jest tym samym przepływem pracy z plikami wsadowymi co Easy-RSA 2. Jego szybki start dla nowego PKI nie jest instrukcją migracji dla istniejącej urzędu. Przed zmianą wersji zachowaj materiał CA oraz rejestry wydawania i unieważniania i postępuj zgodnie ze wskazówkami aktualizacji tej wersji. Inicjalizowanie zastępczego CA w katalogu autorytatywnym, aby błąd wykrywania narzędzi zniknął, to najgorsza opcja z listy.
Zmiana wersji to projekt; błąd rejestru to jedno popołudnie.
Porównanie, które naprawdę to rozwiązuje
Zapisz cztery rzeczy i porównaj je bezpośrednio:
- Który skrypt się uruchomił i który wiersz zawiódł.
- Który widok rejestru odpytywał ten wiersz.
- Której ścieżki pliku wykonywalnego oczekiwał skrypt.
- Która instalacja naprawdę istnieje na maszynie.
Gdy te cztery się zgadzają, błąd znika, a każdy pozostały problem z certyfikatem można odczytać na podstawie jego własnych dowodów, zamiast obwiniać CA.