Uso de su certificado de firma de código

Cómo utilizar su certificado de firma de código OV o EV con SignTool de Microsoft y SSL.com SSL Manager .

Más información

¿Quieres seguir aprendiendo?

Suscríbase al boletín de SSL.com, manténgase informado y seguro.

Esta página web proporciona instrucciones sobre el uso de un SSL.com OV or EV certificado de firma de código con SignTool de Microsoft y SSL.com SSL Manager.

Estas instrucciones asumen que su certificado de firma de código ha sido instalado o que lo tiene en un token de hardware. Para la firma de código basada en la nube utilizando la plataforma eSigner, consulte el página de la información y este guía de inscripción.

Recuerde que para los certificados de firma de código OV y EV basados ​​en hardware, la clave privada solo existe en el token USB YubiKey FIPS que te fue enviado y que el token debe adjuntarse a la computadora que se está utilizando para firmar la solicitud. Los usuarios de Windows con tokens FIPS de YubiKey también deben descargar e instalar el Minicontrolador de tarjeta inteligente YubiKey antes de usar su token.

VO y Los certificados de firma de código EV no deben instalarse manualmente en su computadora, lo que puede causar problemas de configuración. Los certificados enviados en YubiKeys desde SSL.com se pueden usar sin instalación adicional más allá de instalar el Minicontrolador de tarjeta inteligente YubiKey y conectando el token a su computadora. Certificados solicitados a través de atestación remota debe descargarse e instalarse en el dispositivo que contiene la clave privada (por ejemplo, YubiKey FIPS u otro hardware compatible), no en el almacén de certificados de su computadora.
Si planea firmar controladores de Windows 10 con un certificado de firma de código EV, necesitará registrarte con el Programa de desarrollo de hardware de Windows.
Para obtener instrucciones sobre cómo utilizar su certificado de firma de código OV / IV o EV con Java, consulte nuestro Guía de firma de código Java.

Firmar un ejecutable con Yubikey

Instalar Windows SDK y SignTool

SignTool se incluye con SDK de Windows 10. Después de la instalación, SignTool se ubicará debajo de:

C: \ Archivos de programa (x86) \ Windows Kits \ 10 \ bin \ \ x64 \ signtool.exe

Inicio Powershell

Iniciar un Powershell ventana de comandos buscando "Powershell" en el Inicio menú y haciendo clic en la aplicación de escritorio.

Powershell es una interfaz de línea de comandos para los servicios centrales de Windows. Puede usarlo para ejecutar SignTool y firmar su código.

Para código firma, conecte su token USB a su computadora (si aún no lo ha hecho). Si usa eSigner, instale Adaptador de clave eSigner Cloud

Recuerde que la clave privada solo existe en el token USB que se le envió y que el token debe estar adjunto a la computadora que se está utilizando para firmar la solicitud. Este paso se debe omitir si está utilizando un certificado de firma de código OV.

Firme Ejecutable

Puede firmar un ejecutable emitiendo el siguiente comando en la ventana de Powershell. Si usa la firma en la nube de eSigner con signtool.exe, asegúrese de instalar Firmante electrónico CKA

. \ signtool.exe sign / fd sha256 / a "C: \ ruta \ a \ MyExecutable.exe"
  • El /fd La opción selecciona el algoritmo de resumen que se utilizará al firmar. Compilaciones de Windows 10 SDK, HLK, WDK y ADK 20236 y superior requieren que esta opción esté configurada al firmar. Se recomienda SHA256 sobre SHA1 por seguridad.
  • El /a La opción indica a SignTool que busque automáticamente un certificado de firma de código apropiado para su ejecutable.
  • Se le solicitará el PIN de su token USB. Si necesita ayuda para encontrar su PIN, consulte este tutorial.Ingrese su PIN
Nota: Si está firmando archivos de código que se incluirán en un instalador (como un archivo MSI de Windows), deberá firmar estos archivos antes de crear el instalador y luego firmar el archivo del instalador.

Seleccionar un certificado de firma

Especifique el nombre del sujeto

Si tiene más de un token de firma de código o certificados USB instalados, puede especifique el certificado desea utilizar incluyendo su Nombre del tema mediante el /n .

Puede encontrar el nombre del sujeto de su certificado utilizando la herramienta de administración de certificados de Microsoft. administrador de certificación. Abra la herramienta desde el menú Inicio y busque su certificado en la carpeta "Personal", en "Certificados", como se muestra en la imagen a continuación. El nombre del sujeto es el campo "Emitido para" en certmgr.

En la imagen de arriba, el nombre del sujeto del certificado es example. Puede especificar este valor en SignTool con el siguiente comando.

. \ signtool.exe sign / fd sha256 / n "ejemplo" "C: \ ruta \ a \ MyExecutable.exe"

Especificar hash SHA1

Si tiene varios certificados con el mismo nombre de sujeto, también puede usar el hash SHA1 (o "huella digital") de un certificado para seleccionarlo y firmarlo. Reemplazar THUMBPRINT en el siguiente comando con el hash SHA1 real de su certificado. Puede encontrar este valor viendo los detalles del certificado en certmgr y buscando el Thumbprint campo (asegúrese de eliminar cualquier espacio de la huella digital antes de usarlo en su comando).

. \ signtool.exe sign / fd sha256 / sha1 THUMBPRINT "C: \ ruta \ a \ MyExecutable.exe"

Utilice un archivo PKCS # 12 / PFX

Si tiene un certificado de firma de código y una clave privada en un archivo PKCS # 12 (también conocido como archivo PFX o P12), puede especificar el archivo y su contraseña en la línea de comando:

. \ signtool.exe sign / fd sha256 / f "C: \ ruta \ a \ MyCertificate.pfx" / p contraseña "C: \ ruta \ a \ MyExecutable.exe"

Marcando la hora

El sellado de tiempo en su código permitirá que sea confiable después de que expire su certificado de firma de código. Si desea agregar un fecha y hora en el archivo binario firmado, puede hacerlo usando SignTool's /tr opción, que debe seguirse configurando el algoritmo de resumen de marca de tiempo con /td. El comando en el fragmento a continuación incluye una marca de tiempo de SSL.comservicio de marca de tiempo al firmar un ejecutable.

. \ signtool.exe sign / fd sha256 / tr http://ts.ssl.com / td sha256 / a "C: \ ruta \ a \ MyExecutable.exe"
Nota: Asegúrese de utilizar SignTool's /tr opción (especifique la URL del servidor de sello de tiempo RFC 3161), no /t (URL del servidor de marca de tiempo), que es incompatible con el servidor de marca de tiempo de SSL.com.
Nota: El /td opción deben seguir el /tr opción. Si el algoritmo de resumen de marca de tiempo se especifica antes que el servidor de marca de tiempo, se utilizará el algoritmo SHA-1 predeterminado. Compilaciones de Windows 10 SDK, HLK, WDK y ADK 20236 y superior requieren el uso de /tr cuando se marca el tiempo. Se recomienda SHA256 sobre SHA1 por seguridad.
Nota: De forma predeterminada, SSL.com admite marcas de tiempo de claves ECDSA.

Si encuentra este error: The timestamp certificate does not meet a minimum public key length requirement, debe comunicarse con su proveedor de software para permitir las marcas de tiempo de las claves ECDSA.

Si no hay forma de que su proveedor de software permita el uso del punto final normal, puede usar este punto final heredado http://ts.ssl.com/legacy para obtener una marca de tiempo de una unidad de sellado de tiempo RSA.

Otras Opciones

Otras opciones importantes de SignTool son:

  • /d: Agregue una descripción del código firmado. Por ejemplo, /d "test code".
  • /du: Agregue una URL con una descripción ampliada del código firmado. Por ejemplo, /du https://your_website.tld/project/description.

Usando todas las opciones anteriores (pero omitiendo /a, /sha1o /f porque estamos especificando el nombre del sujeto del certificado con /n, nuestra línea de comando se ve así:

signtool.exe sign / n "ejemplo" / fd sha256 / tr http://ts.ssl.com / td sha256 / d "código de prueba" / du https: //your_website.tld/project/description "C: \ path \ to \ MyExecutable.exe "

Verificar firma

Utilice este comando para verificar su código firmado (tenga en cuenta que el /pa La opción debe estar presente en el comando):

. \ signtool.exe verificar / pa "C: \ ruta \ a \ MyExecutable.exe"

Si su archivo se ha firmado correctamente, debería ver un resultado como este:

Archivo: C: \ ruta \ a \ MyExecutable.exe Indice Algoritmo Marca de tiempo =================================== ===== 0 sha256 RFC3161 Verificado con éxito: C: \ ruta \ a \ MyExecutable.exe

También puede verificar que un archivo ha sido firmado haciendo clic derecho en su icono y seleccionando Propiedades en el menú, luego seleccionando el Firmas digitales lengüeta. Ver detalles sobre una firma seleccionándola y haciendo clic en el Detalles del botón.

Firmas digitales

Aquí podemos ver que el archivo contiene una firma digital válida, creada por SSL Corp el 28 de junio de 2020.

Detalles de la firma digital

Firmar un ejecutable con SSL Manager

Si prefiere un enfoque más basado en gráficos, puede usar SSL.comel software interno, SSL Manager, para firmar sus archivos. Muchos clientes prefieren usar SSL Manager porque ofrece el beneficio adicional de tener fácil acceso a todos sus certificados en una interfaz unificada. Para obtener instrucciones sobre cómo descargar e instalar SSL Manager, consulte nuestro guía de instalación.

Para firmar un ejecutable, comience seleccionando Firma de código> Paquete de código de firma y marca de tiempo obtenidos de SSL Managermenú de.

Paquete de código de firma y marca de tiempo

En el formulario de firma de código, puede seleccionar el ejecutable y el certificado de firma de código (ya sea de un archivo o un almacén de certificados) y uno de los servidores de marca de tiempo disponibles. Cuando haya terminado, haga clic en el Firme botón para firmar su código. Se le solicitará el PIN de su token USB.

Además de la firma de código, SSL Manager Ofrece muchas funciones potentes. Para más detalles, consulte SSL Managerdocumentación de, especialmente el Menú de firma de código.

Firma de código con un token USB Thales SafeNet (Gemalto)

Nota: SSL.com envía tokens Thales SafeNet que vienen preinstalados con certificados de firma de código. No elimine ningún material del token.

Esta sección muestra cómo firmar código utilizando el certificado de firma de código de SSL.com, el token USB Thales SafeNet (Gemalto) y el cliente de autenticación Safenet. 

El token Thales SafeNet puede almacenar todo tipo de certificados de firma de código SSL.com y sus claves privadas. Estos incluyen certificados de firma de código de identidad personal, certificados de firma de código de validación de organización y certificados de firma de código de validación extendida.

SafeNet Authentication Client es una solución de middleware que maneja la cartera integral de autenticadores basados ​​en certificados SafeNet de Thales. Esto incluye eTokens, tarjetas inteligentes SafeNet IDPrime, SafeNet IDPrime Virtual y combinaciones PKI/Dispositivos FIDO.

Para obtener instrucciones sobre cómo cambiar su contraseña de firma de código para tokens Thales SafeNet (Gemalto) o recuperar el acceso a un token bloqueado, consulte este artículo de SSL.com: Cómo cambiar la contraseña de su token Thales SafeNet/Gemalto

Requisitos

  1. Kit de desarrollo de Windows instalado en su computadora
  2. Cliente de autenticación de SafeNet instalado en su computadora. Para obtener instrucciones, consulte esta guía de SSL.com: Descarga del cliente de autenticación de SafeNet para certificados de firma de código
  3. Un token de Thales SafeNet que contiene un certificado de firma de código preinstalado de SSL.com. El token Thales SafeNet debe activarse siguiendo estos pasos: 
    1. Localice el número de serie de su token Thales. Se trata de una serie de letras y números que están impresos en la superficie de su token. 
    2. Inicie sesión en su cuenta SSL.com.
    3. Haz clic en el botón Mis Pedidos pestaña, seguida de la descargar enlace de su pedido de certificado para mostrar sus detalles. Sobre el fichas físicas sección, active su token Thales colocando su número de serie en el campo asignado. Tras la activación de su token Thales, el fichas físicas sección mostrará su PIN de activación y PIN de administrador. PIN de activación también se conoce como Contraseña del token y se le solicitará que ingrese esto al firmar su archivo. PIN de administrador también se conoce como PUK- Esto es necesario cuando se establece una nueva contraseña de token en un token bloqueado. 

Pasos para firmar código con un token Thales SafeNet

  1. conectar su token de Thales SafeNet en su computadora. 
  2. Abierto Cliente de autenticación Safenet.
  3. Configure el comando para firmar su código:
    signo de signtool /tr http://ts.ssl.com /td sha256 /fd sha256 /a "PATH_OF_FILE_TO_BE_SIGNED"
    Leyenda:
    /fd sha256 selecciona el algoritmo de resumen que se utilizará al firmar.
    / tr http://ts.ssl.com especifica la dirección del servidor de marca de tiempo
    /tdsha256 especifica el algoritmo de resumen de marca de tiempo
    /a indica a SignTool que busque automáticamente un certificado de firma de código apropiado para su archivo.

    ruta de archivo firmable: La ruta de su archivo debe estar entre comillas dobles.
    Tome nota de incluir el nombre de su archivo firmable en la ruta. Ejemplo: /archivo de prueba.dll

    Nota: Algunos usuarios pueden experimentar este error con el comando de firma: 'Signtool' no se reconoce como un comando interno o externo, programa ejecutable o archivo por lotes. La solución a este error es eliminar el texto. herramienta de señalización del comando y reemplácelo con la ruta de signtool.exe. La ruta debe estar entre comillas dobles.
    “C:\Archivos de programa (x86)\Windows Kits\10\carpeta\carpeta\x86\signtool.exe” signo /tr http://ts.ssl.com/ /td sha256 /fd sha256 /a "C:\ Usuarios\Admin\Documentos\archivos de prueba\archivo de prueba.dll"
  4. Ejecutar Símbolo del sistema como administrador y colocar el comando firmar. Luego presione Acceder.

  5. Verás el mensaje Listo para agregar tienda adicional. Poco después, se le pedirá que coloque su Contraseña del token. Como se indica en el Requisitos sección anterior, la contraseña del token es la misma que la PIN de activación y esto se puede ver a través de la página de pedido de certificados SSL.com. Haga clic en el OK para finalizar la firma del código.

  6. Éxito! Su archivo ahora está firmado. El símbolo del sistema le notificará sobre la firma exitosa. 

Opciones para firmar código

1. Especifique el nombre del sujeto del certificado

Si posee varios tokens o certificados USB de firma de código, puede seleccionar qué certificado específico usar incorporando su nombre de sujeto a través de la opción /n.

Puede ver el nombre del sujeto de su certificado haciendo clic en el ícono de ajustes en SafeNet Authentication Client para permitir una vista avanzada. A continuación, haga clic en la flecha para Certificados de usuario para mostrar todos los certificados instalados en el token. Copie el nombre del certificado que desea utilizar.

El comando de signo usando el /n La opción se parece a la siguiente. El nombre del sujeto de su certificado debe estar entre comillas dobles. 

“RUTA DE SIGNTOOL.EXE” signo /tr http://ts.ssl.com/ /td sha256 /fd sha256 /n "NOMBRE DEL ASUNTO DEL CERTIFICADO" “RUTA_DE_FILE_TO_BE_SIGNED”

2. Especifique la huella digital del certificado

Si posee varios certificados con nombres de sujeto idénticos, puede distinguir y seleccionar uno para firmar utilizando su hash SHA1, comúnmente conocido como "huella digital". Para hacer esto, sustituya IMPRESIÓN DEL PULGAR en el siguiente comando con el hash SHA1 real de su certificado.

Puede ver el valor de la huella digital de su certificado haciendo clic en el ícono de ajustes en SafeNet Authentication Client para permitir una vista avanzada. A continuación, haga clic en la flecha para Certificados de usuario. Haga doble clic en el certificado que desea utilizar. Haga clic en el Detalles pestaña. Finalmente, desplácese hacia abajo hasta Impresión del pulgar campo. 


En el comando de signo, reemplace el texto. IMPRESIÓN DEL PULGAR con el valor real de la huella digital de su certificado. 

Signo “RUTA DE SIGNTOOL.EXE” /tr http://ts.ssl.com/ /td sha256 /fd sha256 /SHA1 THUMBPRINT “RUTA_OF_FILE_TO_BE_SIGNED”

Verificar la firma

Puede verificar la firma digital aplicada haciendo clic derecho en el archivo firmado para ver sus propiedades. 

  1. Haz clic en el botón Firmas digitales pestaña. Pase el mouse hacia la Lista de firmas y haga clic en el nombre mostrado de su certificado para resaltarlo. Haga clic en el Detalles casilla para continuar. 

  2. Podrá ver el nombre del certificado que se utilizó para firmar el archivo, así como la fecha y hora en que se firmó y la marca de tiempo.

¡Gracias por elegir SSL.com! Si tiene alguna pregunta, comuníquese con nosotros por correo electrónico a Support@SSL.com, llamada 1-877-SSL-SECURE, o simplemente haga clic en el enlace de chat en la parte inferior derecha de esta página.

Manténgase informado y seguro

SSL.com es líder mundial en ciberseguridad, PKI y certificados digitales. Regístrese para recibir las últimas noticias, consejos y anuncios de productos de la industria de SSL.com.

Nos encantaría recibir tus comentarios

Responda nuestra encuesta y háganos saber lo que piensa sobre su compra reciente.