Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo consente di risolvere un problema in cui il rinnovo del certificato dell'autorità di certificazione (CA) esistente con la coppia di chiavi pubblica e privata esistente ha esito negativo quando si usa un provider KSP (Key Storage Provider).
Nello snap-in Autorità di certificazione fare clic con il pulsante destro del mouse sulla CA e selezionare Tutte le attività>Rinnova certificato CA. Quindi, nella finestra di dialogo Rinnova certificato CA , quando viene chiesto di generare una nuova coppia di chiavi pubblica e privata, selezionare No, il che significa riutilizzare la coppia di chiavi esistente. In questo caso, non viene richiesto di salvare la richiesta o inviare la richiesta a una CA offline come previsto. Il servizio CA viene riavviato automaticamente e il rinnovo non riesce.
Il valore KeySpec è 2
Per un certificato DELLA CA che usa un provider KSP, la proprietà Key Specification (KeySpec) dovrebbe avere un KeySpec
valore .0
Tuttavia, quando si verifica il problema, il KeySpec
valore è 2
, che causa l'esito negativo del rinnovo del certificato DELLA CA.
Aggiornare il valore KeySpec da 2 a 0
Per risolvere questo problema, aggiornare il KeySpec
valore da 2
a 0
usando la procedura seguente:
Esportare l'archivio del computer locale usando il comando seguente:
certutil -v -store my > c:\temp\machine.txt
Controllare i
KeySpec
valori per tutti i certificati usati dalla CA durante il rinnovo. Ad esempio:================ 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
Se il
KeySpec
valore è2 -- AT_SIGNATURE
, modificarlo in0 -- XCN_AT_NONE
:Creare un file con l'estensione
.inf
. Il contenuto del file (KeyProv.inf) è simile al seguente:[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"
Eseguire il comando seguente usando il numero di serie del certificato in cui il
KeySpec
valore è2
:certutil -repairstore my "21000000044a30cdeaaaae7b08000000000004" KeyProv.inf
Note
È possibile controllare l'hash per ogni certificato CA nelle proprietà della CA selezionando ogni certificato e selezionando Visualizza certificato nella scheda Generale . Quindi, nella scheda Dettagli selezionare Numero di serie.
Eseguire nuovamente il comando seguente e quindi verificare se il
KeySpec
valore è0
:certutil -v -store my > c:\temp\machine-new.txt
Usare i passaggi precedenti per ognuno degli altri certificati della CA con un
KeySpec
valore .2
Dopo che tutti i certificati CA hanno un KeySpec
valore , 0
è possibile provare a rinnovare di nuovo il certificato della CA con la coppia di chiavi esistente.
Ulteriori informazioni
Per i certificati le cui chiavi vengono generate usando provider CNG (Cryptography Next Generation), non esiste alcun concetto di specifica della chiave e il KeySpec
valore è sempre 0
.
KeySpec
valori e significati associati:
Valore Keyspec | Valore | Significato |
---|---|---|
0 |
AT_NONE |
Il certificato è un certificato CNG. |
1 |
AT_KEYEXCHANGE |
Per un certificato CAPI (non CNG) legacy, la chiave può essere usata per la firma e la decrittografia. |
2 |
AT_SIGNATURE |
Per un certificato CAPI (non CNG) legacy, la chiave può essere usata solo per la firma. |