Browser fordert nicht zur Eingabe eines Zertifikats auf - IIS 10.0

Browser fordert nicht zur Eingabe eines Zertifikats auf - IIS 10.0

Ich habe eine Anwendung, die unter IIS 8.5 einwandfrei funktionierte und diese Einstellung in der Datei web.config für eine Client-Zertifikatanmeldung (Smartcard) für einen Pfad verwendete. Ich musste diese Anwendung auf IIS 10.0 migrieren und alles funktioniert, außer dass die Anwendung nicht nach dem Zertifikat fragt und einfach einen Fehler im Code ausgibt, dass kein Zertifikat vorhanden ist.

Ich habe alle Einstellungen in IIS doppelt und dreifach überprüft, das Zertifikat ist dasselbe, die SSL-Einstellungen sind dieselben. Die Anwendung ist eine einfache .netcore-Anwendung und funktioniert einwandfrei, mit Ausnahme der Zertifikatsabfrage. Gibt es etwas, das in IIS 10 anders ist als in 8.5, das ich übersehen haben könnte? Der Teil der web.config, der es dem Browser ermöglicht, das Zertifikat abzufragen, ist meiner Meinung nach dieser Teil hier. Der Entwickler, der dies getan hat, ist nicht mehr unter uns und ich wäre für jede Hilfe dankbar. Gibt es etwas, das ich in IIS überprüfen muss, außer dem, was ich bereits überprüft habe?

Ich habe einige andere Beiträge durchgesehen und sichergestellt, dass sich das Stamm- und Zwischenzertifikat im Zertifikatsspeicher usw. befinden. Die App selbst wird mit dem SSL-Zertifikat problemlos geladen.

<location path="SmartCard">
<system.webServer>
  <security>
    <access sslFlags="Ssl,SslNegotiateCert" />
  </security>
</system.webServer>

Antwort1

AlleDinge sindgleich, Essollenfunktionieren gleich!

Das ist jedoch der entscheidende Teil - vielleicht sind nicht alle Dinge gleich oberhalb der Ebene des web.config? (oder darunter - diese web.config wird nur auf einen SmartCard-Ordner angewendet, der Teil des gleichen HTTP-URL-Pfads ist, basierend daraufStandortEtikett)

Windows\System32\InetSrv\config\ApplicationHost.configneigt dazu, anzusammelnDingeim Laufe der Zeit und die Leute nehmen Konfigurationsänderungen auf Serverebene vor, die sie vergessen.

Also, mögliche Optionen:

  • Überprüfen Sie, ob ein Serverzertifikat vorhanden istmit privatem Schlüsselinstalliert ist und die Site-Bindungen HTTPS beinhalten

    • Ich weiß, Sie haben erwähnt, dass die Nutzung der Website über SSL funktioniert - das sollte beweisen, dass
  • Sichern Sie die effektiven Einstellungen für die Site vom funktionierenden Server und vergleichen Sie sie mit den gesicherten Einstellungen für den nicht funktionierenden Server.

    • für Bonuspunkte könnte so etwas wie Web Deployment Tool dabei helfen
    • manuelle Methode:
      • APPCMD LIST CONFIG http://site/pathabovesmartcard/ /text:* >working.txt(auf funktionierendem Server)
      • APPCMD LIST CONFIG http://site/pathabovesmartcard/ /text:* >NONworking.txt(auf... Sie haben es erraten, dem nicht funktionierenden Server!)
      • und dannvergleichensie mit einem Texteditor oder einem scharfen Auge
      • lassen Sie /text:* weg, wenn Sie XML bevorzugen
  • Ergänzen Sie diesen NETSH SHOW SERVICESTATEVergleich für einen schnellen Überblick über die HTTP.SYS-Warteschlangen

Das ist eigentlich die bereinigte Version - Sie können sich auch den kompletten Inhalt von applicationhost.configungefiltert nach Site (und zunächst sinnvoll organisiert, dann linear mit nachfolgenden Änderungen) in ansehen Windows\System32\InetSrv\Config, und daskönnteeinfacher (oder viel schwieriger) sein.

verwandte Informationen