Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Dieser Artikel hilft bei der Behebung eines Problems, bei dem die Zertifikaterneuerung der Zertifizierungsstelle mit dem vorhandenen öffentlichen und privaten Schlüsselpaar fehlschlägt, wenn ein Schlüsselspeicheranbieter (Key Storage Provider, KSP) verwendet wird.
Klicken Sie im Snap-In der Zertifizierungsstelle mit der rechten Maustaste auf die Zertifizierungsstelle, und wählen Sie das Zertifizierungsstellenzertifikat "Alle Aufgaben>erneuern" aus. Wenn Sie dann im Dialogfeld "Zertifizierungsstellenzertifikat erneuern" aufgefordert werden, ein neues öffentliches und privates Schlüsselpaar zu generieren, wählen Sie "Nein" aus, was bedeutet, das vorhandene Schlüsselpaar wiederzuverwenden. In diesem Fall werden Sie nicht aufgefordert, die Anforderung zu speichern oder die Anforderung wie erwartet an eine Offline-Zertifizierungsstelle zu senden. Der Zertifizierungsstellendienst wird automatisch neu gestartet, und die Verlängerung schlägt fehl.
Der KeySpec-Wert ist 2.
Für ein Zertifizierungsstellenzertifikat mit einem KSP-Anbieter wird erwartet, dass die Key Specification -Eigenschaft (KeySpec) einen KeySpec
Wert aufweist 0
. Wenn das Problem auftritt, lautet 2
der KeySpec
Wert jedoch , was dazu führt, dass die Zertifikatverlängerung der Zertifizierungsstelle fehlschlägt.
Aktualisieren des KeySpec-Werts von 2 auf 0
Um dieses Problem zu beheben, aktualisieren Sie den Wert 2
mithilfe der KeySpec
folgenden Schritte auf folgende 0
Schritte:
Exportieren Sie den lokalen Computerspeicher mit dem folgenden Befehl:
certutil -v -store my > c:\temp\machine.txt
Überprüfen Sie die
KeySpec
Werte für alle Zertifikate, die während der Verlängerung von der Zertifizierungsstelle verwendet werden. Zum Beispiel:================ Certificate 3 ================ X509 Certificate: Version: 3 Serial Number: 21000000044a30cdeaaaae7b08000000000004 Signature Algorithm: Algorithm ObjectId: 1.2.840.113549.1.1.11 sha256RSA Algorithm Parameters: 05 00 Issuer: CN=ROOTCA-CA Name Hash(sha1): a07626ccaaaaabbbb562364300973304401cd3fb Name Hash(md5): 78ac82e59faaaabbbbe860f908f29b29 NotBefore: <DateTime> NotAfter: <DateTime> Subject: CN=Contoso CA DC=Contoso DC=com ... Name Hash(sha1): 01aad90aaaabbbbf368a509eed47be8ea0a3b78d Name Hash(md5): 278a394aaaabbbbf27fbd177c498ca02 Cert Hash(md5): 1b425aaaabbbbaf29c6747e9e0b6f093 Cert Hash(sha1): 35599aaaabbbb0438686dd79915e943895d1e276 Cert Hash(sha256): 96ebd75aaaabbbbb0db31f7a83891533eeada0351ce56b84f3918941c9cba610 Signature Hash: f905cf5aaaabbbb2548c592c593ee6864c9c2dc3ec305da3f4d6751a6ff17afd ... CERT_KEY_PROV_INFO_PROP_ID(2): Key Container = Contoso CA Unique container name: 944d5680aaaabbbb95b1cb4f50ba2b71_6e4d3030-8aae-40f0-9282-d69ccdd4ff34 Provider = Microsoft Software Key Storage Provider ProviderType = 0 Flags = 20 (32) CRYPT_MACHINE_KEYSET -- 20 (32) KeySpec = 2 -- AT_SIGNATURE
Wenn der
KeySpec
Wert lautet2 -- AT_SIGNATURE
, ändern Sie ihn in0 -- XCN_AT_NONE
:Sichern Sie die Zertifizierungsstelle und private Schlüssel.
Erstellen Sie eine Datei mit der
.inf
Erweiterung. Der Inhalt der Datei (KeyProv.inf) ähnelt:[Properties] 2 = "{text}" ; Add Key Provider Information property _continue_="Container = CONTAINER_NAME&" // Replace the "CONTAINER_NAME" with the CA Key Container name of the certificate that has the Serial Number "21000000044a30cdeaaaae7b08000000000004"; Keep the sign '&' in the end; _continue_="Provider = Microsoft Software Key Storage Provider&" _continue_="ProviderType = 0&" _continue_="Flags = 0x20&" _continue_="KeySpec = 0"
Führen Sie den folgenden Befehl mit der Seriennummer des Zertifikats aus, wobei der
KeySpec
Wert lautet2
:certutil -repairstore my "21000000044a30cdeaaaae7b08000000000004" KeyProv.inf
Notiz
Sie können den Hash für jedes Zertifizierungsstellenzertifikat in den Zertifizierungsstelleneigenschaften überprüfen, indem Sie jedes Zertifikat auswählen und auf der Registerkarte "Allgemein" die Option "Zertifikat anzeigen" auswählen. Wählen Sie dann auf der Registerkarte "Details" die Option "Seriennummer" aus.
Führen Sie den folgenden Befehl erneut aus, und überprüfen Sie dann, ob der
KeySpec
Wert lautet0
:certutil -v -store my > c:\temp\machine-new.txt
Führen Sie die vorstehenden Schritte für jedes der anderen Zertifizierungsstellenzertifikate mit einem
KeySpec
Wert von2
.
Sobald alle Zertifizierungsstellenzertifikate einen KeySpec
Wert 0
haben, können Sie versuchen, das Zertifizierungsstellenzertifikat erneut mit dem vorhandenen Schlüsselpaar zu verlängern.
Weitere Informationen
Für Zertifikate, deren Schlüssel mithilfe von CNG-Anbietern (Cryptography Next Generation) generiert werden, gibt es kein Konzept der Schlüsselspezifikation, und der KeySpec
Wert ist immer 0
.
KeySpec
Werte und zugehörige Bedeutungen:
KeySpec-Wert | Wert | Bedeutung |
---|---|---|
0 |
AT_NONE |
Das Zertifikat ist ein CNG-Zertifikat. |
1 |
AT_KEYEXCHANGE |
Bei einem älteren CAPI-Zertifikat (non-CNG) kann der Schlüssel zum Signieren und Entschlüsseln verwendet werden. |
2 |
AT_SIGNATURE |
Bei einem älteren CAPI-Zertifikat (non-CNG) kann der Schlüssel nur zum Signieren verwendet werden. |