Die Zertifikate sind installiert, die privaten Schlüssel liegen vor, und der Tunnel scheitert weiterhin an der Authentifizierung. Ein Rechner mit mehreren Zertifikaten kann dem VPN einen Kandidaten anbieten, den niemand vorgesehen hat, und der Client kann nicht wissen, welches das Gateway akzeptieren würde. Die anderen zu löschen ist eine Auswahlrichtlinie mit Folgen für jeden Dienst auf dem Rechner. Verengen Sie stattdessen die zulässige Menge und bestätigen Sie dann, welches Zertifikat tatsächlich angeboten wurde.

Mehrere Zertifikate, eines angeboten

Native Windows-VPN-Profile mit Maschinenzertifikat-Authentifizierung bieten zwei Filter, die die Kandidaten einschränken: einen Ausstellerfilter und einen Filter für erweiterte Schlüsselverwendung. Sie verkleinern die Menge, aus der der Client wählen darf. Sie reparieren kein ungeeignetes Zertifikat und garantieren nicht, dass der Server akzeptiert, was übrig bleibt. Diese Grenze gehört in den Änderungseintrag, weil der nächste Leser annehmen wird, der Filter habe mehr entschieden, als er entschieden hat.

Der Fehler, den sie adressieren, ist eng und konkret. Ein gültiges Zertifikat der falschen Behörde oder eines, das für einen Zweck ausgestellt wurde, den das Gateway nicht akzeptiert, wird vor dem beabsichtigten gewählt, was eine Authentifizierungsfehlermeldung neben einem gesunden Speicher erzeugt. Zwei Filter machen daraus eine Menge, die klein genug zum Nachdenken ist, und der Rest dieser Seite wendet sie der Reihe nach an.

Prüfen Sie den Speicher, bevor Sie das Profil bearbeiten

Listen Sie die Kandidaten und ihre Eigenschaften in dem Speicher auf, den das Profil tatsächlich verwendet. Nichts hier exportiert einen privaten Schlüssel, und kein Zertifikat muss den Rechner verlassen:

Get-VpnConnection -Name 'Office' | Select-Object Name, TunnelType, AuthenticationMethod
Get-ChildItem Cert:\LocalMachine\My | Select-Object Subject, Issuer, Thumbprint, NotAfter, HasPrivateKey, EnhancedKeyUsageList

Lesen Sie die Ausgabe auf die Eigenschaften, von denen die Entscheidung abhängt: ein nutzbarer privater Schlüssel, ein akzeptables Gültigkeitsfenster, der vorgesehene Aussteller und die Zwecke in der Erweiterung. Ein Zertifikat kann gleichzeitig vorhanden, korrekt eingetragen und für diese Verbindung nutzlos sein. Die Spalte mit dem Fingerabdruck ist die, mit der Sie später vergleichen, also behalten Sie die Ausgabe.

Bestätigen Sie das Profil und seinen Geltungsbereich vor der Bearbeitung, denn ein Maschinenzertifikat in LocalMachine, ein Benutzerzertifikat für EAP-TLS und ein eigener Speicher für private Schlüssel einer Anwendung sind drei verschiedene Kontexte. Verwenden Sie den Bereich aller Benutzer und einen administrativen Kontext, wenn das verwaltete Profil dort liegt. Ein zweites Profil mit ähnlichem Namen anzulegen verdeckt, welche Konfiguration die Verbindung tatsächlich verwendet.

Der Ausstellerfilter will ein Objekt

Der Ausstellerparameter erwartet ein Zertifikatsobjekt, keinen Anzeigenamen und keine bloße Fingerabdruck-Zeichenfolge. Übergeben Sie das Zertifikat der genehmigten Behörde von einem Pfad, den Sie geprüft haben, in dem Speicher, in den es gehört:

$issuerPath = Read-Host 'Certificate-provider path for the approved issuer CA'
$issuer = Get-Item -LiteralPath $issuerPath
Set-VpnConnection -Name 'Office' -MachineCertificateIssuerFilter $issuer

Ersetzen Sie nicht das eigene Endzertifikat des Clients, eine andere Behörde mit ähnlichem Subjekt oder eine frisch erzeugte Wurzel, nur weil der Parametertyp es akzeptiert. Zwei Behörden können eine Subjekt-Zeichenfolge teilen, weshalb das Objekt mehr zählt als der Text. Die Microsoft-Cmdlet-Referenz dokumentiert beide Eingabetypen, und es lohnt sich, sie vor der ersten Bearbeitung zu lesen statt nach dem fehlgeschlagenen Versuch.

Der Verwendungsfilter will eine OID-Zeichenfolge

Der Parameter für erweiterte Schlüsselverwendung nimmt OID-Zeichenfolgen, und der Zweck für die Client-Authentifizierung ist 1.3.6.1.5.5.7.3.2. Angewendet beschränkt er die Kandidaten auf Zertifikate, die diesen Zweck tragen, was genau das ist, was ein Einsatz mit Client-Authentifizierung will:

Set-VpnConnection -Name 'Office' -MachineCertificateEKUFilter '1.3.6.1.5.5.7.3.2'

Der Wert ist ein Array, sodass ein Einsatz, der mehrere Zwecke braucht, sie als Liste übergibt. Was der Filter nicht kann, ist einem Zertifikat einen Zweck hinzuzufügen: Er ist ein Auswahlausdruck, der gegen signierte Erweiterungen ausgewertet wird, und kein Filter schreibt diese um, also muss ein Zertifikat ohne den Zweck erneut durch die Registrierung.

Halten Sie die EAP-Konfiguration für Benutzerzertifikate getrennt von der Filterung von Maschinenzertifikaten, denn sie liegen an verschiedenen Stellen, und eine Änderung an der einen erklärt selten einen Fehler in der anderen. Prüfen Sie außerdem, ob die Domäne oder die Geräteverwaltung das Profil besitzt, denn eine lokale Änderung kann bei der nächsten Richtlinienaktualisierung ersetzt werden, ohne dass jemand den Rechner anfasst.

Belegen Sie, welches Zertifikat der Client angeboten hat

Stellen Sie eine neue Verbindung her und lesen Sie die Authentifizierungsnachweise von Client und Server für die beabsichtigte Identität. Wenn mehr als ein Zertifikat die Filter erfüllt, ist das Ergebnis ein kleinerer Pool statt eines festgelegten Endzertifikats, sodass der nächste Versuch ein anderes Mitglied wählen kann. Notieren Sie den Fingerabdruck, der in diesen Nachweisen erscheint, und vergleichen Sie ihn mit dem aus dem Speicher notierten.

Ein erfolgreicher Befehl ist keine erfolgreiche Authentifizierung. Das Ergebnis, das festgehalten werden sollte, ist das beabsichtigte Zertifikat, das sich unter der verwalteten Richtlinie authentifiziert, während jedes unbeteiligte Zertifikat für die Dienste verfügbar bleibt, die darauf angewiesen sind. Überlebt der Fehler beide Filter, sind die verbleibenden Kandidaten die nächste Stelle zum Nachsehen, nicht das Profil als Ganzes.

Ähnliche Artikel