Guía de integración de Azure DevOps
La integración de CodeSign Secure con Azure DevOps mejora sus canales de CI/CD al automatizar el proceso de firma. Esto garantiza que cada compilación se firme de forma segura y eficiente, reduciendo los errores manuales y reforzando la confiabilidad de su cadena de suministro de software.
Configurar CodeSign Secure KSP
El Proveedor de Almacenamiento de Claves de Consultoría de Cifrado (KSP) para Windows es un componente de software que amplía el marco de la API de Criptografía de Microsoft: Próxima Generación (CNG). Su objetivo principal es permitir que las aplicaciones de Windows, como signtool.exe, interactúen fluidamente con las claves criptográficas y los certificados almacenados en un HSM.
Pasos:
-
Descargar el EC KSP
-
Inicie sesión en el portal CodeSign Secure y navegue a la sección Herramientas de firma para descargar “EC KSP para Windows”.
- Extraiga el archivo zip para obtener el archivo “Setup.msi”.
-
-
Instalar el EC KSP
-
Ejecute el instalador “Setup.msi” con privilegios de administrador.
-
Siga las instrucciones en pantalla del asistente de instalación.
- Acepte el Acuerdo de licencia de usuario final.
- Seleccione el directorio de instalación (el predeterminado es C:\Archivos de programa\Encryption Consulting\SigningKSP).
- Elija si desea instalar el KSP para todos o solo para el usuario actual
-
Ingrese los detalles solicitados, como:
- Nombre de usuario:El nombre de usuario/correo electrónico que utiliza para iniciar sesión en el portal CodeSign Secure.
- Código:El código secreto que usted configuró al momento de configurar la solución CodeSign Secure.
- Tipo de identidad:Mantenga este campo como predeterminado (2)
- URL segura de CodeSign:La URL para acceder al portal (Recuerde agregar “/api/” al final de la URL)
-
Haga clic en Siguiente y confirme la instalación.
-
-
Configurar los ajustes del Editor del Registro
-
Abra el Editor del Registro y navegue al directorio HKEY_CURRENT_USER>Software>Encryption Consulting>SigningKSP.
-
Ahora abra el portal CodeSign Secure y vaya a Configuración del sistema > Usuario. Seleccione "Generar clave API" en el menú desplegable de la derecha.
-
Crea un token para tu cuenta indicando un nombre y el periodo de validez. Recuerda copiar el token, ya que solo se mostrará una vez.
-
Agregue este token al campo “ectoken” en el Editor del Registro.
-
Configurar el certificado de autenticación P12
La configuración de un certificado P12 implica configurar las variables de su entorno para autenticar su máquina cliente con CodeSign Secure de Encryption Consulting.
Pasos:
-
Configurar las variables de entorno
-
Abra las variables de entorno desde su menú Inicio
-
Agregue nuevas variables del sistema haciendo clic en el botón "Nuevo". Indique el nombre de la variable y sus detalles correspondientes.
- Autenticación de cliente EC:Corresponde a la ruta de su certificado de autenticación SSL, que se puede crear desde CodeSignSecure
- Contraseña de cliente EC:Corresponde a la contraseña de su certificado, la cual se proporciona en el momento de la creación del certificado.
- EC_SSL_VERBOSE:Corresponde a la configuración para habilitar (1) o deshabilitar (0) la salida de depuración para EC KSP.
-
Configurar Signtool para firmar
Configurar Signtool para la firma de código implica asegurarse de que la utilidad Signtool.exe esté disponible en su equipo y configurada para interactuar correctamente con el proveedor criptográfico de Encryption Consulting, que proporciona acceso a la clave privada de su certificado de firma de código.
Pasos:
-
Descargar e instalar el SDK de Windows
-
Utilizando el siguiente enlace de descarga, descargue el Kit de desarrollo de software de Windows con las siguientes herramientas seleccionadas: developer.microsoft.com/en-us/windows/downloads/windows-10-sdk/
-
Abra el instalador una vez descargado y seleccione “Siguiente” en la primera pantalla para mantener la configuración predeterminada.
-
Siga las instrucciones en pantalla del asistente de instalación.
- Acepte la privacidad del kit de Windows.
- Acepte el Acuerdo de licencia de usuario final.
-
Anule la selección de todo excepto “Herramientas de firma del SDK de Windows para aplicaciones de escritorio” y seleccione “Instalar”.
-
Vaya a la siguiente ruta donde deberían haberse descargado las herramientas: “C:\Archivos de programa (x86)\Windows Kits\10\bin”. Seleccione el directorio de la versión deseada y compruebe si el archivo “signtool.exe” está presente.
- Asegúrese de estar en el directorio x64 y copie esta ruta de directorio.
-
-
Agregar ruta a Signtool.exe en las variables de entorno
-
Abra las variables de entorno desde el menú Inicio.
-
Desplácese hacia abajo a través de las variables del sistema en la tabla inferior hasta encontrar PATH en los nombres de las variables.
-
Haga doble clic en PATH en las variables del sistema y seleccione "Nuevo" a la izquierda de la pantalla. Pegue la ruta del directorio "signtool.exe" que copió en la nueva selección.
- Seleccione Aceptar en la parte inferior para salir de la página Variables de entorno.
-
Configurar Azure DevOps
La configuración de Azure DevOps implica configurar su organización, proyecto y, específicamente, sus canalizaciones de compilación de Azure DevOps para firmar archivos mediante signtool en una máquina Windows.
Pasos:
-
Crear un proyecto de Azure DevOps
- Vaya a dev.azure.com e inicie sesión con su cuenta Microsoft, o también puede comenzar de forma gratuita con su cuenta de GitHub.
-
Proporcione los detalles según se le solicite
- Se te pedirá que crees una organización si aún no lo has hecho. Crea una organización y comienza con el proyecto.
-
Si ya tiene un proyecto donde desea crear la canalización, vaya a Canalizaciones. De lo contrario, cree primero un proyecto simple. Proporcione los detalles necesarios para continuar.
-
Crear un token de acceso personal
-
Después de crear un proyecto, dirígete a la configuración de usuario en la esquina superior izquierda de la pantalla y haz clic en "Token de acceso personal". En la página siguiente, haz clic en "Nuevo token".
-
En el cuadro de diálogo que se solicita, proporcione los detalles necesarios, como el nombre del token, el nombre de la organización (la organización que creó o a la que accedió anteriormente). Establezca la expiración y los alcances. He configurado el alcance en acceso completo.
- Haga clic en crear y copie el token en algún lugar, ya que no podrá volver a verlo.
-
-
Configurar y descargar un agente
-
Una vez que hayamos obtenido el token, debemos configurar un servidor de ejecución autohospedado. Se trata de una máquina donde Signtool y ECSigningKSP están instalados y configurados. Para ello, vuelva a la página Resumen del código y, en la parte inferior izquierda de la pantalla, verá Configuración del proyecto. Haga clic ahí.
-
En la sección Pipelines, verá Agent Pools. Haga clic ahí y luego en default.
-
Haga clic en el nuevo agente en la parte superior izquierda.
-
Obtén el agente correspondiente a tu sistema operativo. Yo usaré Windows. Descarga el agente y extráelo en la carpeta “C:\agents”. También puedes consultar esta documentación para obtener más ayuda.
-
-
Configurar el agente
- Después de extraer los archivos, navegue a la carpeta donde los extrajo desde cmd y ejecute .\config.cmd.
-
Ahora, la URL del servidor será https://dev.azure.com/<nombre_de_tu_organización>
Simplemente presione Enter para PAT en el tipo de autenticación y, en la siguiente pregunta, proporcione el token copiado anteriormente.
- Una vez registrado el agente, para el grupo de agentes, que viene configurado por defecto, pulse Intro. Si desea asignarle un nombre, puede hacerlo, pero pulse Intro para que se llame CLIENTE.
- Una vez agregado el agente, puede dejar la carpeta de trabajo por defecto o cambiarla según sus preferencias. Para ejecutar el agente como un servicio, ingrese Y (sí). Para la cuenta de usuario que se utilizará para el servicio, asegúrese de configurarla como Administrador; esto es importante porque necesitará privilegios de administrador para firmar el código. Proporcione la contraseña de su cuenta de administrador en su equipo.
- Dado que lo hemos configurado como un servicio, el agente se ejecutará automáticamente; si no lo hubiéramos configurado como un servicio, tendríamos que ejecutar el agente manualmente.
- Acceda a services.msc y desplácese hacia abajo hasta Azure Pipeline Agent para comprobar que ha configurado el inicio de sesión como administrador. Si no lo ha hecho, puede cambiarlo manualmente. Simplemente haga clic en «Iniciar sesión» y aparecerá un cuadro de diálogo; navegue hasta «Iniciar sesión», seleccione «Administrador», introduzca la contraseña y reinicie el servicio. Una vez hecho esto, vuelva a Azure DevOps para crear la canalización.
-
Crear la canalización en Azure DevOps
-
Haga clic en “Pipelines” en Azure DevOps para comenzar y haga clic en “Crear pipeline” en la página siguiente.
-
En la siguiente página, en la sección Conectar, elige dónde está tu código. En este caso, mi código está en GitHub y así lo estoy haciendo. Necesitarás privilegios de administrador en tu repositorio para acceder.
-
Selecciona el repositorio donde tienes tu código.
-
Ahora, en la sección Configurar, si aún no tiene un archivo .yml en su repositorio, haga clic en Canalización de inicio; si ya lo tiene, haga clic en Canalización de Azure existente. Para la canalización de inicio, es posible que deba crear una nueva rama o confirmar cambios en la rama principal.
-
En el editor, escribe el siguiente script
Reemplace las variables especificadas en A continuación se ofrece una breve descripción de la variable esperada.
- : Se refiere a la clave criptográfica utilizada para firmar el código. Ejemplo: evcodesigning
- Debe proporcionar el nombre de un algoritmo hash, como SHA256, SHA384 o SHA512. Debe ser uno de estos tres valores.
- :Proporcione la ruta al certificado de firma de código que obtuvo del portal CodeSign Secure.
- Un servidor de marca de tiempo proporciona evidencia de que una firma digital se realizó en un momento específico, lo que permite verificar en el futuro que un archivo se firmó en un momento específico. El que usamos generalmente es http://timestamp.digicert.com
- Aquí se proporciona la ruta del archivo que se desea firmar. Ejemplo: C:\ \ Asegúrese de haber proporcionado un nombre de archivo con la extensión adecuada.
Nota : En la sección "variables", deberá proporcionar los mismos campos y valores que ha configurado en su variable de entorno para el certificado de autenticación P12.
-
-
Ejecutar la canalización de Azure DevOps
Cuando haga clic en guardar y ejecutar, se le pedirá que introduzca una etiqueta de rama; asegúrese de que el nombre proporcionado aquí y en el activador del script sea el mismo antes de ejecutar el script.
Una vez que la compilación se haya completado con éxito, verá que su archivo se ha firmado correctamente.
