Кой машинен сертификат предлага 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 за потребителски сертификати отделно от филтрирането на машинни сертификати, защото те живеят на различни места и промяна в едното рядко обяснява отказ в другото. Проверете също дали профилът се притежава от домейна или от управлението на устройства, защото локална промяна може да бъде заменена при следващото обновяване на правилата, без някой да пипа машината.
Докажете кой сертификат е предложил клиентът
Установете нова връзка и прочетете доказателствата за удостоверяване на клиента и сървъра за идентичността, която сте предвидили. Когато повече от един сертификат удовлетворява филтрите, резултатът е по-малък набор, а не фиксиран краен сертификат, затова следващият опит може да избере друг член. Отбележете отпечатъка, който се появява в тези доказателства, и го сравнете с този, който сте записали от хранилището.
Успешна команда не е успешно удостоверяване. Резултатът, който си струва да се запише, е предвиденият сертификат да се удостоверява под управляваните правила, докато всеки несвързан сертификат остава достъпен за услугите, които зависят от него. Ако отказът оцелее след двата филтъра, останалите кандидати са следващото място за проверка, а не целият профил.