Weiß jemand, wie man IIS Express so konfiguriert, dass für den Zugriff ein Client-Zertifikat erforderlich ist? Ich versuche, eine problematische ASP.NET-Anwendung zu debuggen, die Clientzertifikate zur Authentifizierung verwendet.
8
Antworten:
Verwenden Sie das IIS Manager-Tool und befolgen Sie die Microsoft-Dokumentation IIS Client Certificate Mapping Authentication <iisClientCertificateMappingAuthentication> .
Beispielkonfiguration:
quelle
Dies waren die Anweisungen, die Jason Shavers in seinem Blog gab. (Diese Seite existiert jedoch nicht mehr.) Scott Hanselman spricht auch über das Aktivieren von SSL unter http://www.hanselman.com/blog/WorkingWithSSLAtDevelopmentTimeIsEasierWithIISExpress.aspx . Er bezieht sich jedoch zu keinem Zeitpunkt darauf, dass für die Site Client-Zertifikate erforderlich sind.
Dies sind die Anweisungen, denen ich gefolgt bin:
Ändern Sie applicationhost.config (Es gibt zwei davon unter MyDocuments \ IISExpress \ config und die andere unter Programmdateien \ IIS Express \ AppServer. Die unter Ihrem Profil wird standardmäßig verwendet, wenn Sie ein Projekt unter IISExpress in VS 2012 ausführen. Die andere kann über die Befehlszeile ausgeführt werden, die ich auf dem lokalen Testcomputer ausgeführt habe.)
Und das Element
zu
Die nächsten beiden Schritte müssen beide in Visual Studio ausgeführt werden. Wenn ein neues Projekt in VS 2012 erstellt wird, wird es standardmäßig als IIS Express-Projekt erstellt. Ein älteres Projekt, das auf VS2012 übertragen wurde, muss diese Einstellung möglicherweise tatsächlich ändern.
Ändern Sie auf der Seite Projekteigenschaften auf der Registerkarte Web die Option Visual Studio Developer Server verwenden in Lokalen IIS-Webserver verwenden. (Das Kontrollkästchen "IIS Express verwenden" sollte abgeblendet sein, wenn auf Ihrem Computer keine reguläre IIS-Installation installiert ist (was auf diesen NMCI-Computern nicht möglich ist). Es sollte eine Projekt-URL mit der Aufschrift " http: //" vorhanden sein. Localhost: 62714 / ( Dies sollte derselbe Port sein, der unter der Einstellung von Visual Studio Development Server als "spezifischer Port" festgelegt wurde (falls festgelegt).
Wählen Sie dann im Solution Explorer das Projekt aus und wechseln Sie zur Registerkarte Eigenschaften. (Manchmal muss dies einige Male durchgeführt werden, bevor die Eigenschaften angezeigt werden.) Dies hat drei Eigenschaften: SSL-Aktivierung mit dem Standardwert false, SSL-URL mit einem neuen Projekt leer und URL mit der URL in " Projekt-URL "auf der Registerkarte Eigenschaften.
Ändern Sie die Eigenschaft SSL enabled in true, und eine neue SSL-URL wird erstellt.
In der Datei applicationhost.config unter dem Element "" wird beim ersten Ausführen des Projekts ein neuer Eintrag vorgenommen, bevor Sie SSL aktivieren. Es wird so aussehen:
Wenn Sie SSL in Ihrem Projekt aktivieren, sollte es folgendermaßen aussehen:
(Alle 443xx-Ports sind für SSL-Projekte reserviert).
quelle
Ich habe ein Blog gefunden , in dem detailliert beschrieben wird, wie Clientzertifikatanforderungen für IIS Express konfiguriert werden (ich habe Visual Studio 2017, IISExpress 10.0 verwendet). Anscheinend hat sich der Speicherort der
applicationhost.config
Dateien in Visual Studio 2015 und höher geändert.Hier ist ein Überblick darüber, was darin steht:
SSL Enabled
bisTrue
(beachten Sie, dass dieSSL URL
Eigenschaft gefüllt wird)https://localhost:44300
applicationhost.config
: In den Jahren 2015 oder 2017 befindet sich die Datei in[solution directory]\.vs\config\
- in früheren Versionen befindet sie sich in%UserProfile%\Documents\IISExpress\config\
<access sslFlags="Ssl, SslNegotiateCert, SslRequireCert" />
und<iisClientCertificateMappingAuthentication enabled="true"></iisClientCertificateMappingAuthentication>
Request.ClientCertificate
Eigenschaft verfügbar und sollte beim Öffnen Ihrer Seite im Browser angefordert werden.quelle