Makecert.exe (Herramienta de creación de certificados)
Esta herramienta genera certificados X.509 sólo a efectos de pruebas. Crea un par de claves pública y privada para firmas digitales y las almacena en un archivo de certificado. También asocia el par de claves al nombre especificado de una compañía y crea un certificado X.509 que enlaza el nombre especificado por un usuario con la parte pública del par de claves.
Makecert.exe incluye opciones básicas y extendidas. Las opciones básicas son las que se utilizan más frecuentemente para crear un certificado. Las opciones extendidas proporcionan más flexibilidad.
Las claves privadas de certificado generadas por esta herramienta no deben almacenarse nunca en archivos .snk. Si debe almacenar una clave privada, utilice un contenedor de claves. Para obtener más información sobre cómo almacenar una clave privada en un contenedor de claves, vea Cómo: Almacenar claves asimétricas en un contenedor de claves.
Precaución
Debe utilizar un almacén de certificados para almacenar sus certificados de forma segura.Los archivos .snk utilizados por esta herramienta almacenan las claves privadas sin protección.Cuando cree o importe un archivo .snk, no olvide protegerlo durante su uso y quitarlo cuando haya terminado.
Esta herramienta se instala automáticamente con Visual Studio y con el SDK de Windows. Para ejecutar la herramienta, se recomienda usar el símbolo del sistema de Visual Studio o del SDK de Windows (shell de CMD). Estas utilidades permiten ejecutar la herramienta fácilmente, sin navegar a la carpeta de instalación. Para obtener más información, vea Símbolos del sistema del SDK de Windows y Visual Studio.
Si tiene instalado Visual Studio en el equipo: en la barra de tareas, haga clic en Start, All Programs, Visual Studio y Visual Studio Tools y, a continuación, haga clic en Visual Studio Command Prompt.
O bien
Si tiene el SDK de Windows instalado en el equipo: en la barra de tareas, haga clic en Start, All Programs, haga clic en la carpeta del SDK de Windows y, a continuación, haga clic en Command Prompt (o CMD Shell).
En el símbolo del sistema, escriba:
makecert [options] outputCertificateFile
Argumento |
Descripción |
---|---|
outputCertificateFile |
Nombre del archivo .cer donde se escribirá el certificado X.509 de prueba. |
Opciones básicas
Opción |
Descripción |
---|---|
-n name |
Especifica el nombre de certificado del sujeto. Este nombre debe cumplir la norma X.500. El método más sencillo consiste en especificar el nombre entre comillas, precedido de CN=; por ejemplo, -n "CN=miNombre". |
-pe |
Marca como exportable la clave privada generada. Esto permite que dicha clave se incluya en el certificado. |
-sk nombreClave |
Especifica la ubicación del contenedor de claves del sujeto, que contiene la clave privada. Si no existe un contenedor de claves, se creará uno. |
-sr ubicación |
Especifica la ubicación del almacén de certificados del sujeto. La ubicación puede ser currentuser (valor predeterminado) o localmachine. |
-ss almacén |
Especifica el nombre del almacén de certificados del sujeto que almacena el certificado de salida. |
-# número |
Especifica un número de serie de 1 a 2.147.483.647. El valor predeterminado es un valor único generado por Makecert.exe. |
-$ autoridad |
Especifica la autoridad de firmas del certificado, que debe establecerse en commercial (para certificados utilizados por publicadores comerciales de software) o individual (para certificados utilizados por publicadores individuales de software). |
-? |
Muestra la sintaxis de comandos y una lista de opciones básicas para la herramienta. |
-! |
Muestra la sintaxis de comandos y una lista de opciones extendidas para la herramienta. |
Opciones extendidas
Opción |
Descripción |
---|---|
-a algoritmo |
Especifica el algoritmo de firma. El algoritmo debe ser md5, sha1 (valor predeterminado), sha256, sha384 o sha512. |
-b mm/dd/aaaa |
Especifica el principio del período de validez. El valor predeterminado es la fecha actual. |
-crl |
Genera una lista de revocación de certificados (CRL) en lugar de un certificado. |
-cy tipoCert |
Especifica el tipo de certificado. Los valores válidos son end para la entidad final y authority para la entidad emisora de certificados. |
-e mm/dd/aaaa |
Especifica el final del período de validez. El valor predeterminado es 12/31/2039 11:59:59 GMT. |
-eku oid[,oid…] |
Inserta en el certificado una lista de identificadores de objetos (OID) para uso mejorado de claves, separados por comas. |
-h número |
Especifica el alto máximo del árbol debajo de este certificado. |
-ic archivo |
Especifica el archivo de certificado del emisor. |
-ik keyName |
Especifica el nombre del contenedor de claves del emisor. |
-iky tipo de clave |
Especifica el tipo de clave del emisor, que debe ser uno de los siguientes: signature (que indica que la clave se usa para una firma digital), exchange (que indica que la clave se usa para el cifrado e intercambio de claves), o un entero, que representa un tipo de proveedor. De forma predeterminada, puede pasar 1 para una clave de intercambio o 2 para una clave de firma. |
-in name |
Especifica el nombre común de certificado del emisor. |
-ip proveedor |
Especifica el nombre de proveedor CryptoAPI del emisor. Para obtener información sobre el nombre de proveedor de CryptoAPI, vea la opción –sp. |
-ir ubicación |
Especifica la ubicación del almacén de certificados del emisor. La ubicación puede ser currentuser (valor predeterminado) o localmachine. |
-is almacén |
Especifica el nombre del almacén de certificados del emisor. |
-iv pvkFile |
Especifica el archivo de clave privada .pvk del emisor. |
-iy tipo |
Especifica el tipo de proveedor CryptoAPI del emisor. Para obtener información sobre el tipo de proveedor de CryptoAPI, vea la opción –sy. |
-l link |
Establece un vínculo para la información de directivas (por ejemplo, a una dirección URL). |
-len número |
Especifica la longitud de la clave generada, en bits. |
-m número |
Especifica la duración en meses del período de validez del certificado. |
-nscp |
Incluye la extensión de la autorización de cliente Netscape. |
-r |
Crea un certificado con firma automática. |
-sc archivo |
Especifica el archivo de certificado del sujeto. |
-sky tipo de clave |
Especifica el tipo de clave del sujeto, que debe ser uno de los siguientes: signature (que indica que la clave se usa para una firma digital), exchange (que indica que la clave se usa para el cifrado e intercambio de claves), o un entero, que representa un tipo de proveedor. De forma predeterminada, puede pasar 1 para una clave de intercambio o 2 para una clave de firma. |
-sp proveedor |
Especifica el nombre de proveedor CryptoAPI del sujeto, que se debe definir en las subclaves del Registro de HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider. Si –sp y –sy están presentes, el tipo de proveedor de CryptoAPI debe corresponderse con el valor de Type de la subclave de proveedor. |
-sv pvkFile |
Especifica el archivo de clave privada .pvk del sujeto. Si no existe archivo, se creará uno. |
-sy tipo |
Especifica el tipo de proveedor CryptoAPI del sujeto, que se debe definir en las subclaves del Registro de HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider Types. Si –sy y –sp están presentes, el nombre del proveedor de CryptoAPI debe corresponderse con el valor de Name de la subclave de proveedor. |
-tbs |
Especifica el archivo de certificado o CRL que se va a firmar. |
Ejemplos
El comando siguiente crea un certificado de prueba emitido por la raíz de prueba predeterminada y lo escribe en testCert.cer.
makecert testCert.cer
El comando siguiente crea un certificado emitido por la raíz de prueba predeterminada y lo guarda en un almacén de certificados.
makecert -ss testCertStore
El comando siguiente crea un certificado emitido por la raíz de prueba predeterminada y lo guarda en un almacén de certificados. Coloca el certificado de forma explícita en el almacén currentuser.
makecert -ss testCertStore -sr currentuser
El comando siguiente crea un certificado de prueba y lo escribe en textXYZ.cer, utilizando el contenedor de claves del sujeto y su nombre de certificado conforme a la norma X.500.
makecert -sk XYZ -n "CN=XYZ Company" testXYZ.cer
El comando siguiente crea un certificado emitido por la raíz de prueba predeterminada, crea un archivo .pvk y coloca el certificado en el almacén y en el archivo.
makecert -sv testCert.pvk -ss testCertStore testCert.cer
El comando siguiente crea un certificado emitido por la raíz de prueba predeterminada, crea un contenedor de claves y coloca el certificado en el almacén y en el archivo.
makecert -sk myTestKey -ss testCertStore testCert.cer
El siguiente comando crea un certificado con firma automática, especifica el nombre de un sujeto de "CN=XYZ Company", especifica los períodos de validez inicial y final, coloca la clave en el almacén my, especifica una clave de intercambio y hace que la clave privada se pueda exportar.
makecert -r -pe -n "CN=XYZ Company" -b 01/01/2005 -e 01/01/2010 -sky exchange -ss my
El comando siguiente crea un certificado autofirmado que se puede usar para probar una aplicación web que utilice Secure Sockets Layer (SSL) en un servidor web cuya dirección URL es www.ejemplo.com. El OID definido por la opción –eku identifica ese certificado como certificado de servidor SSL. El certificado se guarda en el almacén my y está disponible en el nivel de equipo (en lugar del usuario). La clave privada del certificado se puede exportar y el certificado es válido del 10 de mayo de 2010 al 22 de diciembre de 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
Los comandos siguientes crean certificados y los guardan en almacenes. El primer comando crea un certificado mediante la raíz de prueba predeterminada y lo guarda en un almacén. El segundo comando crea otro certificado utilizando el certificado creado con anterioridad y guarda este segundo certificado en otro almacén.
makecert -sk myTestKey -ss testCertStore
makecert -is testCertStore -ss anotherTestStore
Los comandos siguientes crean certificados y los guardan en almacenes. El primer comando guarda el certificado en el almacén my. El segundo comando crea otro certificado utilizando el certificado creado con anterioridad. Dado que hay más de un certificado en el almacén my, el segundo comando identifica el primer certificado mediante su nombre común.
makecert -sk myTestKey -n "CN=XXZZYY" -ss my
makecert -is my -in "XXZZYY" -ss anotherTestStore
Los comandos siguientes crean certificados y los guardan en archivos y almacenes. El primer comando crea un certificado mediante la raíz de prueba predeterminada y lo guarda en el almacén my y en un archivo. El segundo comando crea otro certificado utilizando el certificado testCert.cer creado con anterioridad. Dado que hay más de un certificado en el almacén my, el segundo comando identifica únicamente el primer certificado mediante su nombre de archivo.
makecert -sk myTestKey -n "CN=XXZZYY" -ss my testCert.cer
makecert -is my -ic testCert.cer -ss anotherTestStore
Vea también
Referencia
Cert2spc.exe (Herramienta de prueba de certificados del editor de software)
Símbolos del sistema del SDK de Windows y Visual Studio
Otros recursos
Herramientas de .NET Framework
Historial de cambios
Fecha |
Historial |
Motivo |
---|---|---|
1 de abril de 2011 |
Se agregó información sobre el uso de los símbolos del sistema de Visual Studio y del SDK de Windows. |
Mejora de la información. |
Mayo de 2010 |
Se ha revisado exhaustivamente. |
Comentarios de los clientes. |