it-swarm.com.de

HTTP-Fehler 403.16 - Vertrauensproblem mit Clientzertifikaten

Ich versuche, die Authentifizierung des Clientzertifikats auf IIS zu implementieren. 8. Ich habe meine Konfiguration auf einem Entwicklungscomputer bereitgestellt und überprüft, dass sie wie erwartet funktioniert. Nach dem Einrichten auf dem Server, aber wenn ich zur Site navigiere und nach dem Client-Zertifikat gefragt werde, wähle ich es aus und bekomme sofort den 403.16-Fehler. Das Protokoll für fehlgeschlagene Anforderungen enthält den Fehlercode 2148204809 und die Nachricht "Eine Zertifikatskette wurde verarbeitet, aber in einem Stammzertifikat abgebrochen, dem der Vertrauensanbieter nicht vertraut."

Ich habe ein gültiges Client-Zertifikat und auch ein gültiges CA-Zertifikat. Das CA-Zertifikat ist auf dem Computerkonto sowohl auf dem Server als auch auf dem Clientcomputer in vertrauenswürdigen Stammbehörden installiert, und das Clientzertifikat ist im persönlichen Bereich des Kontos "Aktueller Benutzer" auf dem Clientcomputer installiert.

Das Clientzertifikat wird direkt von der Stammzertifizierungsstelle signiert. Wie gesagt, beide sind gültig. Es gibt keine weiteren Zertifikate in der Kette und es gibt keine Zwischenzertifikate im Bereich Vertrauenswürdige Stammbehörden.

Die Konfiguration von IIS hat sslFlags = SslNegotiateCert und iisClientCertificateMappingAuthentication ist aktiviert.

Der Server ist nicht dafür konfiguriert, eine CTL zu senden, und wir haben SendTrustedIssuerList = 0.

Ich kann nicht erkennen, warum das Client-Zertifikat nicht vertrauenswürdig sein sollte.

26
Eric

Windows 2012 führte strengere Zertifikatsspeicher-Überprüfungen ein. Gemäß KB 2795828: Der Lync Server 2013-Front-End-Dienst kann in Windows Server 2012 nicht gestartet werden , der Speicher für vertrauenswürdige Stammzertifizierungsstellen (d. H. Stammordner) kann nur über selbstsignierte Zertifikate verfügen. Wenn dieser Speicher nicht selbstsignierte Zertifikate enthält, wird die Authentifizierung des Clientzertifikats unter IIS mit einem Fehlercode 403.16 zurückgegeben.

Um das Problem zu lösen, müssen Sie alle nicht selbstsignierten Zertifikate aus dem Stammspeicher entfernen. Dieser PowerShell-Befehl identifiziert nicht selbstsignierte Zertifikate:

Get-Childitem cert:\LocalMachine\root -Recurse | 
    Where-Object {$_.Issuer -ne $_.Subject}

In meiner Situation haben wir diese nicht selbstsignierten Zertifikate in den Speicher der Zwischenzertifizierungsstellen (d. H. CA) verschoben:

Get-Childitem cert:\LocalMachine\root -Recurse | 
    Where-Object {$_.Issuer -ne $_.Subject} | 
    Move-Item -Destination Cert:\LocalMachine\CA

Gemäß KB 2801679: SSL/TLS-Kommunikationsprobleme nach der Installation von KB 931125 weisen möglicherweise auch zu viele vertrauenswürdige Zertifikate auf. 

[T] Die maximale Größe der Liste der vertrauenswürdigen Zertifizierungsstellen, die das Schannel-Sicherheitspaket unterstützt, beträgt 16 Kilobyte (KB). Bei einer großen Anzahl von Root-Zertifizierungsstellen von Drittanbietern wird die Grenze von 16 KB überschritten und es treten TLS/SSL-Kommunikationsprobleme auf.

Die Lösung in dieser Situation ist, alle Zertifizierungsstellenzertifikate zu entfernen, denen Sie nicht vertrauen, oder um das Senden der Liste der vertrauenswürdigen Zertifizierungsstellen zu beenden, indem Sie den Registrierungseintrag HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\@SendTrustedIssuerList auf 0 setzen ).

72
Aaron Jensen

In meinem Fall habe ich das Stammzertifikat zum Zertifikatspeicher des aktuellen Benutzers auf dem Server hinzugefügt und erhielt den Fehler 403.16. 

Das Hinzufügen des Stammzertifikats zum Speicher für vertrauenswürdige Stammbehörden für den lokalen Computer hat das Problem behoben.

Führen Sie die folgenden Schritte auf dem Server aus, auf dem IIS ausgeführt wird.

Für Windows Server 2008 R2:

  1. Klicken Sie mit der rechten Maustaste auf die Zertifikatdatei und wählen Sie "Zertifikat installieren". Weiter klicken.
  2. Wählen Sie "Alle Zertifikate in folgendem Speicher speichern" und klicken Sie auf "Durchsuchen ...".
  3. Aktivieren Sie "Physische Geschäfte anzeigen".
  4. Erweitern Sie "Vertrauenswürdige Stammzertifizierungsstellen" und wählen Sie "Lokaler Computer". OK klicken.
  5. Klicken Sie auf Weiter/Klicken Sie auf Fertig stellen.

Für Windows Server 2012 R2:

  1. Klicken Sie mit der rechten Maustaste auf die Zertifikatsdatei und wählen Sie "Install Certificate".
  2. Wählen Sie 'Local Machine'. Weiter klicken.
  3. Wählen Sie "Alle Zertifikate in folgendem Speicher speichern" und klicken Sie auf "Durchsuchen ...".
  4. Wählen Sie "Vertrauenswürdige Stammzertifizierungsstellen" aus. OK klicken.
  5. Klicken Sie auf Weiter/Klicken Sie auf Fertig stellen.

Für Windows 7:

  1. Start -> Ausführen -> mmc.exe
  2. Datei -> 'Snap-Ins hinzufügen oder entfernen'. Wählen Sie "Zertifikate", klicken Sie auf "Hinzufügen>" und wählen Sie "Computerkonto" und dann "Lokaler Computer". Klicken Sie auf Fertig stellen/OK
  3. Erweitern Sie Zertifikate (Lokaler Computer) -> Vertrauenswürdige Stammzertifizierungsstellen -> Zertifikate. Klicken Sie mit der rechten Maustaste auf Zertifikate und wählen Sie Alle Aufgaben -> Importieren.
  4. Wählen Sie die Zertifikatdatei aus und klicken Sie auf Weiter.
  5. Wählen Sie "Alle Zertifikate in folgendem Speicher speichern" und klicken Sie auf "Durchsuchen ...".
  6. Aktivieren Sie "Physische Geschäfte anzeigen".
  7. Erweitern Sie "Vertrauenswürdige Stammzertifizierungsstellen" und wählen Sie "Lokaler Computer". OK klicken.
  8. Klicken Sie auf Weiter/Klicken Sie auf Fertig stellen.
2
PST

Ich habe diesen Fehler in IIS Express erhalten:

HTTP-Fehler 403.16 - Verboten 

Ihr Client-Zertifikat ist entweder nicht vertrauenswürdig oder ungültig.

Beim Betrachten der TraceLogFiles habe ich den folgenden Fehler gesehen:

<RenderingInfo Culture="en-US">
 <Opcode>MODULE_SET_RESPONSE_ERROR_STATUS</Opcode>
 <Keywords>
  <Keyword>RequestNotifications</Keyword>
 </Keywords>
 <freb:Description Data="Notification">BEGIN_REQUEST</freb:Description>
 <freb:Description Data="ErrorCode">A certificate chain processed, but terminated in a root certificate which is not trusted by the trust provider.
(0x800b0109)</freb:Description>
</RenderingInfo>

Bei der Installation von Razer Synapse stellte sich heraus, dass bei der Installation auch ein Zertifikat für chromasdk.io in den vertrauenswürdigen Stammzertifizierungsstellen unter Computerkonto -> Lokaler Computer gespeichert wurde. Ich habe das entfernt und alles hat funktioniert.

0
Ogglas