Condividi tramite


Makecert.exe (strumento di creazione certificati)

Lo strumento di creazione certificati genera certificati X.509 solo a scopo di testing e crea una coppia di chiavi pubblica e privata per le firme digitali e la archivia in un file di certificato. Esso inoltre associa la coppia di chiavi a un nome di editore specificato e crea un certificato X.509 che collega un nome specificato dall'utente alla parte pubblica della coppia di chiavi.

Makecert.exe include opzioni di base ed estese. Le opzioni di base sono quelle più frequentemente utilizzate nella creazione di certificati. Le opzioni estese offrono una maggiore flessibilità.

Le chiavi private dei certificati generate da questo strumento non devono mai essere archiviate in file SNK. Se è necessario archiviare una chiave privata, è opportuno utilizzare un contenitore di chiavi. Per ulteriori informazioni sul come archiviare una chiave privata in un contenitore di chiavi, vedere Procedura: archiviare chiavi asimmetriche in un contenitore di chiavi.

Attenzione

Per archiviare i certificati in modo sicuro, è necessario utilizzare un archivio certificati.I file SNK utilizzati da questo strumento archiviano le chiavi private in modo non protetto.Quando si crea o si importa un file SNK, è necessario proteggerlo durante l'utilizzo e rimuoverlo al termine delle operazioni.

Questo strumento viene installato automaticamente con Visual Studio e con Windows SDK. Per eseguire lo strumento, si consiglia di utilizzare il prompt dei comandi di Visual Studio o il prompt dei comandi di Windows SDK (shell di CMD). Queste utilità consentono di eseguire facilmente lo strumento, senza dover passare alla cartella di installazione. Per ulteriori informazioni, vedere Prompt dei comandi di Visual Studio e Windows SDK.

  • Se si dispone di Visual Studio installato sul computer: nella barra delle applicazioni, fare clic su Start, fare clic su All Programs, fare clic su Visual Studio, fare clic su Visual Studio Tools e quindi su Visual Studio Command Prompt.

    In alternativa

    Se si dispone di Windows SDK installato sul computer: nella barra delle applicazioni, fare clic su Start, fare clic su All Programs, fare clic sulla cartella di Windows SDK e quindi su Command Prompt (o CMD Shell).

  • Al prompt dei comandi digitare quanto segue:

makecert [options] outputCertificateFile

Argomento

Oggetto di descrizione

FileCertificatooutput

Nome del file CER in cui verrà scritto il certificato di prova X.509.

Opzioni di base

Opzione

Oggetto di descrizione

-n name

Specifica il nome del certificato dell'oggetto. Questo nome deve essere conforme allo standard X.500. Il metodo più semplice consiste nello specificare il nome tra virgolette doppie, preceduto da CN=, ad esempio, -n "CN=nome".

-pe

Contrassegna la chiave privata generata come esportabile. In questo modo è possibile includere la chiave privata nel certificato.

-sk keyname

Specifica la posizione del contenitore di chiavi dell'oggetto, che contiene la chiave privata. Se non è disponibile alcun contenitore di chiavi, ne verrà creato uno.

-sr location

Specifica la posizione dell'archivio del certificato dell'oggetto. La posizione può essere impostata sia su currentuser (predefinita) oppure su localmachine.

-ss store

Specifica il nome dell'archivio del certificato dell'oggetto in cui è archiviato il certificato di output.

-# number

Specifica un numero di serie da 1 a 2,147,483,647. L'impostazione predefinita è un valore univoco generato da Makecert.exe.

-$ authority

Specifica l'autorità di firma del certificato che deve essere impostata su commercial per i certificati utilizzati da editori di software commerciale) o su individual (per i certificati utilizzati da editori di software per uso personale).

-?

Visualizza la sintassi del comando e l'elenco delle opzioni di base dello strumento.

-!

Visualizza la sintassi del comando e l'elenco delle opzioni estese dello strumento.

Opzioni estese

Opzione

Oggetto di descrizione

-a algoritmo

Specifica l'algoritmo di firma. algoritmo deve essere md5, sha1 (quello predefinito), sha256, sha384 o sha512.

-b gg/mm/aaaa

Specifica l'inizio del periodo di validità. Viene impostato in modo predefinito sulla data corrente.

-crl

Compilare un elenco certificati revocati (CRL, Certificate Revocation List) anziché un certificato.

-cy certType

Specifica il tipo del certificato. I valori validi sono end per entità finale, authority per autorità di certificazione.

-e gg/mm/aaaa

Specifica il termine del periodo di validità. Per impostazione predefinita, corrisponde al 31 dicembre 2039, ora GMT 11:59:59.

-eku oid[,oid…]

Inserisce nel certificato un elenco di identificatori di oggetto (OID, Object Identifier) per l'uso di chiavi avanzate, separati da virgole.

-h number

Specifica l'altezza massima della struttura ad albero al di sotto del certificato.

-ic file

Specifica il file di certificato dell'autorità emittente.

-ik keyName

Specifica il nome del contenitore di chiavi dell'autorità emittente.

-iky keytype

Specifica il tipo di chiave dell'autorità emittente, che deve essere uno dei seguenti elementi: signature, che indica che la chiave viene utilizzata per una firma digitale, exchange, che indica che la chiave viene utilizzata per la crittografia delle chiavi e lo scambio delle chiavi o un numero intero che rappresenta un tipo di provider. Per impostazione predefinita, è possibile passare 1 per una chiave exchange o 2 per una chiave signature.

-in name

Specifica il nome comune del certificato dell'autorità emittente.

-ip provider

Specifica il nome del provider CryptoAPI dell'autorità emittente. Per informazioni sul nome del provider CryptoAPI, vedere l'opzione –sp.

-ir location

Specifica la posizione dell'archivio del certificato dell'autorità emittente. La posizione può essere impostata sia su currentuser (predefinita) oppure su localmachine.

-is store

Specifica il nome dell'archivio del certificato dell'autorità emittente.

-iv pvkFile

Specifica il file PVK della chiave privata dell'autorità emittente.

-iy type

Specifica il tipo del provider CryptoAPI dell'autorità emittente. Per informazioni sul tipo di provider CryptoAPI, vedere l'opzione –sy.

-l link

Effettua il collegamento a informazioni sui criteri, ad esempio un URL.

-len number

Consente di specificare la lunghezza in bit della chiave generata.

-m number

Specifica la durata, in mesi, del periodo di validità del certificato.

-nscp

Include l'estensione dell'autorizzazione client di Netscape.

-r

Crea un certificato autofirmato.

-sc file

Specifica il file di certificato dell'oggetto.

-sky keytype

Specifica il tipo di chiave dell'oggetto, che deve essere uno dei seguenti elementi: signature, che indica che la chiave viene utilizzata per una firma digitale, exchange, che indica che la chiave viene utilizzata per la crittografia delle chiavi e lo scambio delle chiavi o un numero intero che rappresenta un tipo di provider. Per impostazione predefinita, è possibile passare 1 per una chiave exchange o 2 per una chiave signature.

-sp provider

Specifica il nome del provider di CryptoAPI dell'oggetto, che deve essere definito nelle sottochiavi di HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider nel Registro di sistema. Se sono presenti sia –sp che –sy, il tipo del provider di CryptoAPI deve corrispondere al valore Type della sottochiave del provider.

-sv pvkFile

Specifica il file PVK della chiave privata dell'oggetto. Se non è disponibile alcun file, ne verrà creato uno.

-sy type

Specifica il nome del tipo di provider di CryptoAPI dell'oggetto, che deve essere definito nelle sottochiavi di HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider Types nel Registro di sistema. Se sono presenti sia –sy che –sp, il nome del provider di CryptoAPI deve corrispondere al valore Name della sottochiave del tipo di provider.

-tbs

Specifica il certificato o file CRL da firmare.

Esempi

Il comando che segue crea un certificato di prova emesso dalla directory radice di prova predefinita e lo scrive in testCert.cer.

makecert testCert.cer

Il comando che segue crea un certificato emesso dalla directory radice di prova predefinita e lo salva in un archivio certificati.

makecert -ss testCertStore

Il comando che segue crea un certificato emesso dalla directory radice di prova predefinita e lo salva in un archivio certificati. Il certificato viene inserito in modo esplicito nell'archivio currentuser.

makecert -ss testCertStore -sr currentuser

Il comando che segue crea un certificato di prova e lo scrive in textXYZ.cer, utilizzando il contenitore di chiavi dell'oggetto e il nome X.500 dell'oggetto del certificato.

makecert -sk XYZ -n "CN=XYZ Company" testXYZ.cer 

Il comando che segue crea un certificato emesso dalla directory radice di prova predefinita, crea un file PVK e inserisce il certificato nell'archivio e nel file.

makecert -sv testCert.pvk -ss testCertStore testCert.cer

Il comando che segue crea un certificato emesso dalla directory radice di prova predefinita, crea un contenitore di chiavi e inserisce il certificato nell'archivio e nel file.

makecert -sk myTestKey -ss testCertStore testCert.cer

Il comando che segue crea un certificato autofirmato, specifica "CN=XYZ Company" come nome del soggetto, specifica la data iniziale e quella finale del periodo di validità, inserisce la chiave nell'archivio my, specifica una chiave exchange e rende esportabile la chiave privata.

makecert -r -pe -n "CN=XYZ Company" -b 01/01/2005 -e 01/01/2010 -sky exchange -ss my

Il comando seguente crea un certificato autofirmato che può essere utilizzato per eseguire il test di un'applicazione Web che utilizza SSL (Secure Sockets Layer) su un server Web il cui url è www.example.com. L'OID definito dall'opzione –eku identifica il certificato come certificato server SSL. Il certificato è memorizzato nell'archivio di my ed è disponibile a livello di computer (anziché di utente). La chiave privata del certificato è esportabile e il certificato è valido dal 10 maggio 2010 al 22 dicembre 2011.

Makecert –r –pe –n CN="www.example.com" –b 05/10/2010 –e 12/22/2011 –eku 1.3.6.1.5.5.7.3.1 –ss my –sr localmachine -sky exchange –sp "Microsoft RSA SChannel Cryptographic Provider" –sy 12

I comandi che seguono creano certificati e li salvano negli archivi. Il primo crea un certificato utilizzando la directory radice di prova predefinita e lo salva in un archivio. Il secondo comando crea un altro certificato sulla base di quello appena creato e lo salva in un altro archivio.

makecert -sk myTestKey -ss testCertStore
makecert -is testCertStore -ss anotherTestStore

I comandi che seguono creano certificati e li salvano negli archivi. Il primo salva il certificato nell'archivio my. Il secondo comando crea un altro certificato sulla base di quello appena creato. Poiché nell'archivio my sono presenti più certificati, il secondo comando identifica il primo certificato utilizzandone il nome comune.

makecert -sk myTestKey -n "CN=XXZZYY" -ss my
makecert -is my -in "XXZZYY" -ss anotherTestStore

I comandi che seguono creano certificati e li salvano in file e archivi. Il primo crea un certificato utilizzando la directory radice di prova predefinita e lo salva nell'archivio my e in un file. Il secondo comando crea un altro certificato sulla base del certificato testCert.cer appena creato. Poiché nell'archivio my sono presenti più certificati, il secondo comando identifica unicamente il primo certificato utilizzandone il nome di file.

makecert -sk myTestKey -n "CN=XXZZYY" -ss my testCert.cer
makecert -is my -ic testCert.cer -ss anotherTestStore

Vedere anche

Riferimenti

Cert2spc.exe (strumento di test dei certificati del distributore di software)

Prompt dei comandi di Visual Studio e Windows SDK

Altre risorse

Strumenti di .NET Framework

Cronologia delle modifiche

Data

Cronologia

Motivo

Aprile 2011

Sono state aggiunte informazioni sull'utilizzo di Visual Studio e dei prompt dei comandi di Windows SDK.

Miglioramento delle informazioni.

Maggio 2010

Rivisto in modo esteso.

Commenti e suggerimenti dei clienti.