So legen Sie die Leseberechtigung für die private Schlüsseldatei des X.509-Zertifikats von .NET fest
Hier ist der code zum hinzufügen einer pfx-das Cert-store.
X509Store store = new X509Store( StoreName.My, StoreLocation.LocalMachine );
store.Open( OpenFlags.ReadWrite );
X509Certificate2 cert = new X509Certificate2( "test.pfx", "password" );
store.Add( cert );
store.Close();
Allerdings, ich konnte nicht einen Weg finden, die Erlaubnis für NetworkService Zugriff auf den privaten Schlüssel.
Kann jemand etwas Licht? Vielen Dank im Voraus.
InformationsquelleAutor der Frage Ray Lu | 2009-01-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Tun es programmatisch, müssen Sie drei Dinge tun:
Holen Sie sich den Pfad zu dem privaten Schlüssel Ordner.
Holen Sie sich den Dateinamen des privaten Schlüssels in diesem Ordner.
Fügen Sie die Berechtigung für diese Datei.
Sehen dieser Beitrag für einige Beispiel-code, die alle drei nicht (insbesondere Blick auf die "AddAccessToCertificate" - Methode).
InformationsquelleAutor der Antwort Eric Rosenberger
Diese Antwort ist spät, aber ich wollte es posten für jemand anderes, der kommt Suche hier:
Fand ich eine MSDN-blog-Artikel, gab eine Lösung, die mit CryptoKeySecurity hierund hier ist ein Beispiel für eine Lösung in C#:
Ich bin mit einem Security Identifier um das Konto zu identifizieren, aber ein NTAccount würde genauso gut funktionieren.
InformationsquelleAutor der Antwort Jim Flood
In diesem Fall hilft jemand anderes aus, ich schrieb Jim Flood Antwort in der Powershell
Beachten Sie, dass der Konto-parameter können in der form "DOMÄNE\BENUTZER" als auch (nicht nur gebaut im Namen) - getestet habe ich dies in meinem Umfeld und es wird automatisch konvertiert, um den entsprechenden SID
InformationsquelleAutor der Antwort Russ
Können Sie die WinHttpCertCfg.exe tooldass die Schiffe als Teil der Windows Server 2003 Resource Kit Tools.
Beispiel:
Alternativ können Sie die Finden Sie Private-Key-tool, dass Schiffe, die mit der WCF-SDK, um den Speicherort auf der Festplatte des privaten Schlüssels des Zertifikats-Datei. Dann können Sie einfach die ACL setzen Sie die richtigen Berechtigungen auf die Datei.
Beispiel:
InformationsquelleAutor der Antwort Enrico Campidoglio
Dies ist die Lösung, die ich gefunden für windows server 2008, wenn jemand interessiert war: http://technet.microsoft.com/en-us/library/ee662329.aspx
Ich hatte grundsätzlich zu gewähren, Berechtigungen für den service, die Zugriff auf das Zertifikat mit der MMC-tool. Funktioniert wie ein Charme.
InformationsquelleAutor der Antwort kennydust