Installieren Sie Client-Zertifikat für IIS App Pool-Konto
-
06-07-2019 - |
Frage
Szenario:
- Ein Client ruft WebService A im LAN. WebService A ist mit Identität "Network Service" unter einem App-Pool ausgeführt wird.
- WebService A hat einige Arbeit bereitet WebService B zu nennen.
- WebService B erfordert ein Client-Zertifikat (* .cer) und SSL.
- WebService A ist auf einem dedizierten Windows 2003 Server.
- funktioniert alles in der Umgebung Dev wie es sein soll (aber der Entwickler mit Administratorrechten immer lokal (keine Überraschung angemeldet ist!).
- Die Zertifikate gespeichert sind, auf der Festplatte bei
C:\MyCertificates\
- Das Zertifikat zur Laufzeit angewandt erfolgreich mit diesem Code-Schnipsel in Dev wird:
myWebService.ClientCertificates.Add(new X509Certificate.CreateFromCertFile(certPath));
Problem: WebService A ruft WebService B, und die zurückgegebene Ausnahme ist:
Die Anforderung ist fehlgeschlagen mit HTTP-Status 403: Verboten
Das bedeutet wirklich, dass das Zertifikat nicht in der Anfrage an WebService B gesendet wurde.
Ich bin die Annahme, unter, dass dieses Zertifikat in den Browser zu installieren ist keine Lösung. Die Browser-Einstellungen sind in der Regel pro Benutzer, und ich brauche das Zertifikat an den Benutzer, deren Anmeldeinformationen des Web-Dienst läuft unter geben. (Zum Beispiel Netzwerkdienst, System, oder was auch immer in den IIS AppPool Einstellungen ist).
Frage: Wie kann ich Zugang oder Vereinigung zu meinem Zertifikat gewähren an der angegebenen Verzeichnispfad zu dem Netzwerkdienstkonto oder einem anderen Nicht-Benutzer leben
Lösung
Dieser Microsoft Support-Artikel kann von Nutzen sein:
Ihr Web-Service 'A' würde die ASP.NET-Anwendung des Aufruf den Web-Service effektiv sein, wie in dem Artikel beschrieben.