Guía de integración de TeamCity
La integración de CodeSign Secure con TeamCity automatiza el paso de firma de código dentro de sus configuraciones de compilación, lo que garantiza que sus artefactos de software estén firmados de forma segura antes de ser lanzados o implementados, sin intervención manual.
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
Para configurar signtool para la firma de código es necesario asegurarse de que la utilidad Signtool.exe esté disponible en su máquina 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: desarrollador.microsoft.com/es-es/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 TeamCity
La configuración de TeamCity implica preparar su entorno de TeamCity, específicamente sus agentes de compilación y configuraciones de compilación, para realizar la firma de código automatizada utilizando CodeSign Secure y KSP de Encryption Consulting.
Pasos:
-
Descargue e instale la aplicación TeamCity
-
Puede descargar la aplicación gratuita TeamCity o una versión Enterprise paga usando el este enlaceHay tres opciones de sistema operativo para la aplicación: Linux, Windows y macOS. Trabajaremos con el archivo ejecutable de Windows.
-
Ejecute la aplicación para instalar el servidor TeamCity en su entorno.
-
Acepte los términos y condiciones y haga clic en “Acepto”.
-
Mantenga la configuración predeterminada para facilitar la integración y la gestión del servidor.
-
Haga clic en Guardar y luego en Aceptar para continuar al siguiente paso de creación de la cuenta.
-
Seleccione la opción para ejecutar TeamCity Server y TeamCity Agent con la cuenta de usuario y haga clic en Siguiente. Se le solicitará que inicie sesión con el usuario actual de su sistema.
-
Seleccione ambas opciones para iniciar el servicio del agente de compilación y el servicio del servidor TeamCity. Haga clic en Siguiente.
-
Haga clic en Finalizar. Accederá a la interfaz web de TeamCity, donde podrá crear sus proyectos y configurar las políticas de configuración.
-
La interfaz web se ejecuta en el host local, en el puerto 8111 (predeterminado). Haga clic en "Continuar" para configurar la ubicación del directorio de datos del servidor de TeamCity. Acceda a TeamCity desde un navegador: http://localhost:8111
-
Seleccione la base de datos adecuada que almacenará el historial de compilación y la información de su cuenta. Para este proyecto, utilizaremos la base de datos HSQLDB.
-
Acepte el acuerdo de licencia y haga clic en Continuar.
-
Ahora cree una cuenta de inicio de sesión para su canalización y proyectos de CI/CD.
-
-
Crea un nuevo proyecto
-
Tras iniciar sesión correctamente, accederás al panel de TeamCity. Ahora puedes empezar a crear tu primer proyecto. Haz clic en "Crear proyecto".
-
Hay dos opciones al crear un proyecto en TeamCity: usar una cuenta de repositorio o hacerlo manualmente. Veamos primero el proceso manual. Ingrese los detalles necesarios para su proyecto.
-
Una vez creado exitosamente, se le solicitará que cree una configuración de compilación.
-
Aquí también tienes dos opciones: repositorio o proceso manual. Continuaremos con el proceso manual. Introduce los datos necesarios y haz clic en Crear.
-
A continuación, se le pedirá que introduzca los datos de configuración del control de versiones. Este paso es opcional y lo omitiremos en este proyecto.
-
-
Crea una tubería en tu proyecto
-
Tras configurar el proyecto general y la configuración, podemos añadir pasos de compilación a nuestra canalización. Estos son los procesos que ejecutarán las operaciones de firma de código.
-
Haga clic en el botón “Agregar paso de compilación” y elija “Línea de comando” en el menú desplegable.
-
A continuación, se le pedirá que introduzca los datos de configuración del control de versiones. Este paso es opcional y lo omitiremos en este proyecto.
- Proporcione los detalles básicos, como el nombre del paso y el ID del paso.
-
Seleccione la opción Código de script personalizado del menú desplegable del campo Script e ingrese el script cmd para realizar la operación de firma utilizando los detalles requeridos.
A continuación se proporciona un ejemplo de script de línea de comandos para su referencia:
signtool sign /csp "Proveedor de almacenamiento de claves de consultoría de cifrado" /kc /fd /F /tr /td
Las siguientes son las banderas y su significado en el comando:
- /csp: Esto especifica el proveedor de servicios de claves que se utilizará. Siempre debe ser "Proveedor de almacenamiento de claves de consultoría de cifrado".
- / kc: Este debe ser el nombre de la clave privada asociada a su certificado. Probablemente sea el mismo que el del certificado.
- /fdEste es el algoritmo de firma que se utilizará con la función de firma. Puede ser SHA256, SHA384 o SHA512.
- /fEl nombre del certificado que se usará para la firma. Debe ser el mismo que el del indicador /kc.
- /tr (opcional): Esta es la URL de la autoridad de marca de tiempo que se utilizará. Si no se utiliza /tr y no se requiere la marca de tiempo, también se debe omitir /td en este comando.
- /td (opcional)Este es el algoritmo de firma que se utilizará con el servidor de sellado de tiempo. Puede ser SHA256, SHA384 o SHA512. Este algoritmo debe ser el mismo que el del campo /fd. Si no se utiliza /tr y no se requiere sellado de tiempo, también se debe omitir /td en este comando.
- Este es el nombre del archivo que se va a firmar. Este archivo debe estar en el directorio donde se ejecuta este comando.
-
Todo el paso debería verse similar a la imagen a continuación:
-
Ahora repita el proceso anterior para crear otro paso de compilación para la verificación del archivo firmado.
A continuación se proporciona un ejemplo de script de línea de comandos para su referencia:
signtool verificar
-
Todo el paso debería verse similar a la imagen a continuación:
-
Ejecutar TeamCity Pipeline
- Ahora, para ejecutar el pipeline, haga clic en "Ejecutar", que se encuentra en la parte superior derecha de la vista del proyecto.
-
Después de hacer clic en "Ejecutar", puede ver la acción en vivo del pipeline haciendo clic en "Agentes" (arriba a la izquierda) -> Seleccionar el nombre del agente -> Historial de compilación.
-
Una ejecución exitosa de una canalización se verá así. Aquí puede ver que se han completado ambos pasos de compilación (firma y verificación).
