PFX kann mit CERTUTIL nicht importiert werden – „Keyset existiert nicht“

PFX kann mit CERTUTIL nicht importiert werden – „Keyset existiert nicht“

Wir haben eine PFX-Datei, die sich bei Verwendung auf jedem anderen Windows-System (Server 2008 R2, 7, 8) problemlos installieren lässt. Auf zwei meiner Server schlägt der Import folgendermaßen fehl:

CertUtil: -importPFX command FAILED: 0x80090016 (-2146893802) CertUtil: Keyset does not exist

Wir haben dieses PFX ursprünglich mit dem MMC-Snap-In importiert, was zu funktionieren scheint, da keine Fehler gemeldet werden und das Zertifikat beim Öffnen anzeigt, dass es einen privaten Schlüssel hat, aber bei unserer .NET-Anwendung erhielten wir eine Fehlermeldung, dass der private Schlüssel nicht vorhanden war. Wir gingen davon aus, dass wir über Berechtigungen für den privaten Schlüssel verfügten und fügten die richtigen Berechtigungen für unseren App-Pool hinzu. Dies machte keinen Unterschied. Wir haben mehrmals importiert und gelöscht, um dies zu beheben.

Wir haben nun festgestellt, dass die Größe der beim Import über MMC zum C:\ProgramData\Microsoft\Crypto\RSA\MachineKeysOrdner hinzugefügten Dateien auf den nicht funktionierenden Servern nur 79 KB betrug, während auf funktionierenden Systemen normalerweise eine Größe von 2 KB angezeigt wird.

Ich habe MD5-Prüfungen an den Dateien durchgeführt, um sicherzustellen, dass sie gleich sind (was sie waren). Außerdem habe ich sie von dem System zurückkopiert, das nicht funktionierte (die ursprünglich kopierte Datei, kein Export), und das anderswo immer noch funktioniert.

Warum sollte dies fehlschlagen?

Antwort1

Jede von uns durchgeführte Google-Suche lieferte im Wesentlichen immer die gleiche Antwort, nämlich etwas im Zusammenhang mit den Berechtigungen der privaten Schlüssel … dies basierte jedoch auf den Fehlermeldungen, die wir sahen.

Schließlich haben wir das Problem gefunden, nachdem wir „ WinHttpCertCfg.exealong with“ verwendet haben, um Process Monitorden Zugriff auf Ordner und die Registrierung zu protokollieren.

Als einer unserer Entwickler einige Testzertifikate hinzufügte, änderte er auch die Sicherheitsberechtigungen für den C:\ProgramData\Microsoft\Crypto\RSA\MachineKeysOrdner, sodass IIS auf den privaten Schlüssel der von ihm importierten Zertifikate zugreifen konnte, anstatt die Berechtigungen über das Zertifikat-Snap-In in MMC zu erteilen.

Er hat nur eine neue Berechtigung hinzugefügt und die vorhandenen nicht geändert, aber dadurch wurde der Import von Zertifikaten irgendwie unterbrochen. Nachdem die zusätzlichen Berechtigungen entfernt wurden, funktionierte es wieder.

Ich bezweifle sehr, dass andere dasselbe Problem haben werden, dachte aber, dass es sinnvoller ist, zu antworten, anstatt die Frage zu löschen oder zu schließen, da es vielleicht eines Tages jemand anderem helfen könnte.

verwandte Informationen