Share via


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.