bearbeiten für zukünftige Leser: Leider ist die Prämie ausgezeichnet Antwort nicht funktioniert; ich kann nichts dagegen tun. Aber lesen Sie meine eigene Antwort unten (durch Tests) - bestätigt mit minimaler Code arbeiten ändertSSL-Client-Zertifikat auf * einigen * WebAPI-Controllern deaktivieren?
Wir haben ein Azure Cloud Service (WebRole), das ist ganz in ASP.NET WebAPI 2.2 (kein MVC, Frontend ist Angular). Einige unserer Controller/REST-Endpunkte sprechen mit einem Cloud-Dienst eines Drittanbieters über SSL (client cert auth/mutual auth) und die übrigen Controller/Endpoints sprechen mit dem Frontend HTML5/AngularJS, auch über SSL (aber eher traditionelle Serverauthentifizierung) SSL). Wir haben keinen Nicht-SSL-Endpunkt. Wir haben über einen Cloud-Service-Start-Task-Client SSL aktiviert wie:
IF NOT DEFINED APPCMD SET APPCMD=%SystemRoot%\system32\inetsrv\AppCmd.exe
%APPCMD% unlock config /section:system.webServer/security/access
Problem: Diese Einstellung ist standortweite so auch wenn Benutzer die erste Seite getroffen (sagen wir https://domain.com, gibt die index.html für AngularJS) ihre Browser fragt sie nach Client-SSL-Zertifikat. (Bild unten)
Wenn es eine Möglichkeit, entweder
- Grenze der Client-SSL-Zertifikat-Anforderungen nur die WebAPI Controller, die auf den 3rd-Party-Cloud-Service sprechen?
OR
- überspringen Client SSL auth für unsere Frontend WebAPI Controller einschalten?
web.config Unser Server ist komplex, aber der entsprechende Code-Schnipsel ist unten:
<system.webServer>
<security>
<access sslFlags="SslNegotiateCert" />
</security>
</system.webServer>
Und der Screenshot des Clients noch versuchen, Client-SSL-Authentifizierung eines regelmäßigen WebAPI Endpunkt trifft (geschieht in jedem Browser, Chrome , Firefox oder IE)
können Sie Ihr Ergebnis serverWebConfig und WebConfig-Anwendung anzeigen? –
Server Web.Konfiguration oben, Anwendung webconfig existiert nicht, da die Client-Anwendung ein Browser ist – DeepSpace101
Ich denke, dass diese Frage besser auf Serverfehler passen würde. –