Który certyfikat komputera oferuje VPN w Windows?
Kilka certyfikatów komputera, jeden oferowany, a brama go odrzuca. Zawęź pulę filtrami wystawcy i EKU, zamiast cokolwiek usuwać.
Certyfikaty są zainstalowane, klucze prywatne są obecne, a tunel nadal nie przechodzi uwierzytelniania. Komputer z kilkoma certyfikatami może podać VPN-owi kandydata, którego nikt nie przewidział, a klient nie ma sposobu, by wiedzieć, który brama by zaakceptowała. Usunięcie pozostałych to polityka wyboru z konsekwencjami dla każdej usługi na komputerze. Zawęź zamiast tego dopuszczalny zbiór, a potem potwierdź, który certyfikat został faktycznie zaoferowany.
Kilka certyfikatów, jeden oferowany
Natywne profile VPN w Windows z uwierzytelnianiem certyfikatem komputera udostępniają dwa filtry ograniczające kandydatów: filtr wystawcy i filtr rozszerzonego użycia klucza. Zmniejszają zbiór, z którego klient może wybierać. Nie naprawiają nieodpowiedniego certyfikatu i nie gwarantują, że serwer zaakceptuje to, co zostanie. Tę granicę warto zapisać w dzienniku zmian, bo następny czytelnik założy, że filtr zdecydował więcej, niż zdecydował.
Awaria, którą rozwiązują, jest wąska i konkretna. Ważny certyfikat od niewłaściwego organu lub wydany do celu, którego brama nie akceptuje, jest wybierany przed zamierzonym, co daje błąd uwierzytelniania obok zdrowego magazynu. Dwa filtry zamieniają to w zbiór wystarczająco mały do przemyślenia, a reszta tej strony stosuje je po kolei.
Sprawdź magazyn przed edycją profilu
Wypisz kandydatów i ich właściwości w magazynie, którego profil faktycznie używa. Nic tutaj nie eksportuje klucza prywatnego i żaden certyfikat nie musi opuszczać komputera:
Get-VpnConnection -Name 'Office' | Select-Object Name, TunnelType, AuthenticationMethod
Get-ChildItem Cert:\LocalMachine\My | Select-Object Subject, Issuer, Thumbprint, NotAfter, HasPrivateKey, EnhancedKeyUsageList
Przeczytaj dane wyjściowe pod kątem właściwości, od których zależy decyzja: użyteczny klucz prywatny, akceptowalne okno ważności, zamierzony wystawca i cele w rozszerzeniu. Certyfikat może być obecny, poprawnie zarejestrowany i bezużyteczny dla tego połączenia jednocześnie. Kolumna odcisku to ta, z którą później porównasz, więc zachowaj dane wyjściowe.
Potwierdź profil i jego zakres przed edycją, ponieważ certyfikat komputera w LocalMachine, certyfikat EAP-TLS użytkownika i własny magazyn kluczy prywatnych aplikacji to trzy różne konteksty. Użyj zakresu wszystkich użytkowników i kontekstu administracyjnego, gdy zarządzany profil znajduje się właśnie tam. Utworzenie drugiego profilu o podobnej nazwie ukrywa, której konfiguracji połączenie faktycznie używa.
Filtr wystawcy chce obiektu
Parametr wystawcy oczekuje obiektu certyfikatu, a nie nazwy wyświetlanej i nie nagiego ciągu odcisku. Podaj certyfikat zatwierdzonego organu ze sprawdzonej przez siebie ścieżki, w magazynie, do którego należy:
$issuerPath = Read-Host 'Certificate-provider path for the approved issuer CA'
$issuer = Get-Item -LiteralPath $issuerPath
Set-VpnConnection -Name 'Office' -MachineCertificateIssuerFilter $issuer
Nie zastępuj własnego certyfikatu liścia klienta, innego organu o podobnym podmiocie ani świeżo wygenerowanego korzenia tylko dlatego, że typ parametru to akceptuje. Dwa organy mogą dzielić ten sam ciąg podmiotu, i dlatego obiekt znaczy więcej niż tekst. Dokumentacja poleceń cmdlet Microsoft opisuje oba typy danych wejściowych, i warto ją przeczytać przed pierwszą edycją, a nie po nieudanej próbie.
Filtr użycia chce ciągu OID
Parametr rozszerzonego użycia klucza przyjmuje ciągi OID, a celem uwierzytelniania klienta jest 1.3.6.1.5.5.7.3.2. Zastosowanie go ogranicza kandydatów do certyfikatów noszących ten cel, czego właśnie chce wdrożenie z uwierzytelnianiem klienta:
Set-VpnConnection -Name 'Office' -MachineCertificateEKUFilter '1.3.6.1.5.5.7.3.2'
Wartość jest tablicą, więc wdrożenie potrzebujące kilku celów przekazuje je jako listę. Filtr nie może dodać celu do certyfikatu: jest to wyrażenie wyboru oceniane wobec podpisanych rozszerzeń, a żaden filtr ich nie przepisuje, więc certyfikat bez celu musi przejść ponownie przez rejestrację.
Trzymaj konfigurację EAP certyfikatów użytkowników oddzielnie od filtrowania certyfikatów komputera, bo żyją w różnych miejscach, a zmiana w jednym rzadko wyjaśnia awarię w drugim. Sprawdź też, czy profilem nie zarządza domena lub zarządzanie urządzeniami, bo lokalna edycja może zostać zastąpiona przy następnym odświeżeniu zasad, bez czyjegokolwiek dotknięcia komputera.
Udowodnij, który certyfikat klient zaoferował
Nawiąż nowe połączenie i odczytaj dowody uwierzytelniania klienta i serwera dla zamierzonej tożsamości. Gdy filtry spełnia więcej niż jeden certyfikat, wynikiem jest mniejsza pula, a nie przypięty liść, więc następna próba może wybrać innego członka. Zanotuj odcisk, który pojawi się w tych dowodach, i porównaj go z tym zapisanym z magazynu.
Udane polecenie to nie udane uwierzytelnienie. Wynikiem wartym zapisania jest to, że zamierzony certyfikat uwierzytelnia się w ramach zarządzanych zasad, podczas gdy każdy niepowiązany certyfikat pozostaje dostępny dla usług, które od niego zależą. Jeśli awaria przetrwa oba filtry, następnym miejscem do sprawdzenia są pozostali kandydaci, a nie cały profil.