Який сертифікат комп’ютера пропонує VPN у Windows?
Кілька сертифікатів комп’ютера, один пропонується, а шлюз його відхиляє. Звужте набір фільтрами видавця та EKU замість того, щоб щось видаляти.
Сертифікати встановлено, закриті ключі на місці, а тунель усе одно не проходить автентифікацію. Комп’ютер із кількома сертифікатами може запропонувати VPN кандидата, якого ніхто не передбачав, і клієнт не може дізнатися, який із них прийме шлюз. Видалення решти — це політика вибору з наслідками для кожної служби на комп’ютері. Натомість звужте припустимий набір, а потім підтвердьте, який сертифікат було фактично запропоновано.
Кілька сертифікатів, один запропонований
Власні профілі VPN у Windows з автентифікацією за сертифікатом комп’ютера надають два фільтри, що обмежують кандидатів: фільтр видавця та фільтр розширеного використання ключа. Вони зменшують набір, з якого клієнт може вибирати. Вони не виправляють непридатний сертифікат і не гарантують, що сервер прийме те, що залишиться. Цю межу варто записати в журнал змін, бо наступний читач вважатиме, що фільтр вирішив більше, ніж вирішив насправді.
Збій, який вони усувають, вузький і конкретний. Дійсний сертифікат від неправильного центру або виданий для мети, яку шлюз не приймає, вибирається раніше за потрібний, що дає збій автентифікації поряд зі здоровим сховищем. Два фільтри перетворюють це на набір, достатньо малий для аналізу, і решта цієї сторінки застосовує їх по черзі.
Перегляньте сховище до правки профілю
Перелічіть кандидатів та їхні властивості у сховищі, яке профіль справді використовує. Ніщо тут не експортує закритий ключ, і жоден сертифікат не мусить залишати комп’ютер:
Get-VpnConnection -Name 'Office' | Select-Object Name, TunnelType, AuthenticationMethod
Get-ChildItem Cert:\LocalMachine\My | Select-Object Subject, Issuer, Thumbprint, NotAfter, HasPrivateKey, EnhancedKeyUsageList
Прочитайте вивід щодо властивостей, від яких залежить рішення: придатний закритий ключ, прийнятний період дії, потрібний видавець і мети в розширенні. Сертифікат може одночасно бути присутнім, правильно зареєстрованим і марним для цього підключення. Стовпець відбитка — це те, з чим ви пізніше порівнюватимете, тому збережіть вивід.
Підтвердьте профіль і його область до правки, бо сертифікат комп’ютера в LocalMachine, сертифікат EAP-TLS користувача і власне сховище закритих ключів застосунку — це три різні контексти. Використовуйте область усіх користувачів та адміністративний контекст, коли керований профіль розташований саме там. Створення другого профілю зі схожим ім’ям приховує, яку конфігурацію підключення справді використовує.
Фільтр видавця хоче об’єкт
Параметр видавця очікує об’єкт сертифіката, а не відображуване ім’я і не голий рядок відбитка. Передайте сертифікат схваленого центру з перевіреного вами шляху, до того сховища, де він міститься:
$issuerPath = Read-Host 'Certificate-provider path for the approved issuer CA'
$issuer = Get-Item -LiteralPath $issuerPath
Set-VpnConnection -Name 'Office' -MachineCertificateIssuerFilter $issuer
Не підміняйте власний кінцевий сертифікат клієнта, інший центр зі схожим суб’єктом або щойно створений корінь лише тому, що тип параметра це приймає. Два центри можуть мати один рядок суб’єкта, і саме тому об’єкт важливіший за текст. Довідка з командлетів Microsoft описує обидва типи вводу, і її варто прочитати до першої правки, а не після невдалої спроби.
Фільтр використання хоче рядок OID
Параметр розширеного використання ключа приймає рядки OID, а мета автентифікації клієнта — 1.3.6.1.5.5.7.3.2. Його застосування обмежує кандидатів сертифікатами з цією метою, що саме й потрібно розгортанню з автентифікацією клієнта:
Set-VpnConnection -Name 'Office' -MachineCertificateEKUFilter '1.3.6.1.5.5.7.3.2'
Значення — масив, тому розгортання, якому потрібно кілька цілей, передає їх списком. Чого фільтр не може — додати мету сертифікату: це вираз вибору, що обчислюється за підписаними розширеннями, і жоден фільтр їх не переписує, тому сертифікат без потрібної мети мусить знову пройти реєстрацію.
Тримайте конфігурацію EAP користувацьких сертифікатів окремо від фільтрації сертифікатів комп’ютера, бо вони розташовані в різних місцях і зміна в одному рідко пояснює збій в іншому. Перевірте також, чи володіє профілем домен або керування пристроями, бо локальну правку може бути замінено під час наступного оновлення політики без будь-чийого втручання.
Доведіть, який сертифікат запропонував клієнт
Встановіть нове підключення і прочитайте свідчення автентифікації клієнта та сервера для потрібної ідентичності. Коли фільтри задовольняє більше ніж один сертифікат, результат — менший набір, а не закріплений кінцевий сертифікат, тому наступна спроба може вибрати іншого члена. Запишіть відбиток, що з’явиться в цих свідченнях, і порівняйте його з тим, що ви записали зі сховища.
Успішна команда — не успішна автентифікація. Результат, який варто зафіксувати, — це потрібний сертифікат, що проходить автентифікацію за керованою політикою, тоді як кожен сторонній сертифікат залишається доступним службам, які від нього залежать. Якщо збій переживає обидва фільтри, наступне місце для перевірки — залишкові кандидати, а не весь профіль.