Ir al contenido

Webinar: Regístrese para nuestro próximo seminario web

Regístrate Ahora

Cómo integrar una canalización de CD de CI de Jenkins con firma de código

tareas relacionadas con el desarrollo de software
Tabla de contenido

Jenkins es una herramienta de automatización de código abierto ampliamente utilizada para la integración y entrega continuas (CI/CD) de aplicaciones de software. Jenkins proporciona una interfaz de usuario web que facilita la configuración y la gestión de trabajos, que son tareas automatizadas que pueden programarse para ejecutarse en momentos específicos o activarse por eventos específicos. Estos trabajos pueden utilizarse para compilar código, ejecutar pruebas, implementar aplicaciones y realizar muchas otras tareas relacionadas con el desarrollo de software.

Algunas de las características clave de Jenkins incluyen:

  • Fácil instalación y configuración.

    Jenkins es fácil de instalar y configurar y se puede configurar en una amplia gama de sistemas operativos y plataformas.

  • Gestión eficaz de trabajos

    Jenkins permite crear y gestionar trabajos, que son tareas automatizadas que pueden programarse para ejecutarse en momentos específicos o activarse por eventos específicos. Los trabajos se pueden usar para compilar código, ejecutar pruebas, implementar aplicaciones y realizar muchas otras tareas relacionadas con el desarrollo de software.

  • Amplia gama de complementos e integraciones

    Jenkins cuenta con una gran cantidad de complementos e integraciones disponibles, lo que le permite funcionar con diversas herramientas y tecnologías. Esto lo hace altamente personalizable y flexible.

  • Soporte para tuberías

    Jenkins ofrece un sólido soporte para pipelines, que son conjuntos de etapas que definen un flujo de trabajo de desarrollo de software. Los pipelines se pueden definir mediante código, lo que los hace altamente personalizables y fáciles de controlar por versiones.

  • Soporte de pruebas integrado

    Jenkins ofrece compatibilidad integrada con diversos tipos de pruebas, como pruebas unitarias, de integración y funcionales. Esto facilita la ejecución de pruebas como parte de un flujo de trabajo de integración continua, garantizando que cualquier cambio en el código se pruebe exhaustivamente antes de implementarse en producción.

  • Escalabilidad organizacional

    Jenkins se puede escalar fácilmente para soportar grandes equipos de desarrollo y flujos de trabajo de desarrollo de software complejos.

  • De código abierto

    Jenkins es un software de código abierto, lo que significa que su uso es gratuito y se puede personalizar para satisfacer las necesidades específicas de su equipo de desarrollo.

Diseño de código con Jenkins

Firma de código Es un procedimiento que verifica la legitimidad del autor, así como la originalidad y autenticidad de la información digital, en particular del código de software. También garantiza que la información no sea código malicioso. Además, garantiza que esta información no haya sido alterada, falsificada ni cancelada después de su publicación. firmado digitalmente.

Para realizar el diseño de código utilizando Jenkins, siga los pasos a continuación.

Los requisitos previos para realizar esta tarea incluyen:

  1. Configuración de Jenkins en su dispositivo
  2. Signtool instalado y configurado
  3. ECSigning KSP instalado y configurado.

Para instalar y configurar Jenkins, siga los pasos este enlace.

Solución de firma de código empresarial

Obtenga una solución para todas sus necesidades criptográficas de firma de código de software con nuestra solución de firma de código.

Para instalar y configurar Signtool siga los pasos a continuación:

Signtool se puede descargar como parte del SDK de Windows. Descargar SDK de Windows: (desarrollador.microsoft.com/es-es/windows/downloads/windows-10-sdk/)

Puede elegir instalar solo las herramientas de firma del SDK de Windows para aplicaciones de escritorio.

Abra el archivo winsdksetup.exe. Recuerde la ruta predeterminada que se muestra en la ruta de instalación, ya que será útil para ejecutar estos comandos desde el símbolo del sistema.

Inicio del SDK de Windows

En la página de Privacidad de Windows Kits, cualquiera de las opciones para permitir que Microsoft recopile información es válida. Haga clic en Siguiente.

Privacidad del SDK de Windows

Acepta el acuerdo de licencia

Acuerdo de licencia del SDK de Windows

Deseleccione todas las funciones excepto Herramientas de firma del SDK de Windows para aplicaciones de escritorio Luego seleccione instalar.

función del SDK de Windows

Cuando se le pregunte si desea permitir que esta aplicación realice cambios, seleccione Sí.

Control de cuentas de usuario de Windows
SDK de Windows final

Haga clic en la barra de búsqueda de Windows en la barra de tareas y escriba “Editar las variables de entorno del sistema” y seleccione la opción del panel de control del mismo nombre.

editar la variable de entorno del sistema

Haga clic en Variables de entorno.

variables ambientales modales

Antes de editar la lista de variables, navegue hasta donde está instalado el SDK de Windows para usar el explorador de archivos, debe copiar la ruta de la carpeta que contiene la aplicación signtool, la ruta predeterminada es C:\Archivos de programa (x86)\Windows Kits\10\bin\10.0.22621.0\x64, Consulta la siguiente captura de pantalla. Asegúrate de hacer clic derecho y copiar la ruta como se muestra. También puedes ver la aplicación signtool al final de la lista de archivos; este es el comando que ejecutarás.

Ruta de instalación de signtool

En la lista de Variables del Sistema, haga clic en Nuevo. Escriba Ruta como nombre de la variable y copie y pegue la ruta mencionada. Haga clic en OK en el entorno empresarial las variables ventana y te propiedades ventana.

añadir nueva variable del sistema

Para probar la instalación, abra el símbolo del sistema y escriba signtool; el resultado debería ser como se muestra a continuación.

Símbolo del sistema de signtool

La ubicación de instalación predeterminada de signtool es, por ejemplo: C:\Archivos de programa (x86)\Windows Kits\10\bin\10.0.22621.0\x64

Para configurar KSP siga los pasos a continuación:

Encryption Consulting le ofrece esta solución, Firma de código seguraEsta solución le permite almacenar las claves a prueba de manipulaciones y obtener visibilidad y control completos de las actividades de firma de código. Las claves privadas del certificado de firma de código se pueden almacenar en un HSM para eliminar los riesgos asociados con el robo, la corrupción o el uso indebido de claves.

Si está utilizando nuestra solución, puede descargar el KSP siguiendo los pasos a continuación:

  • Registrarse en Código de firma seguro.
  • Navegar a: Repositorio de herramientas de firma.

    Página de herramientas de firma segura de Codesign
  • Descargar “Consultoría de cifrado CNG-SigningKSP”
  • Instale las herramientas de cliente con el instalador .MSI. Este automatiza gran parte de la configuración. Vaya a la ubicación donde se guardó el archivo descargado e inicie el instalador.

    instalador msi
  • Haga clic en Siguiente cuando aparezca el asistente de instalación.

    Configuración de KSP para firma EC en casa
  • Haga clic en Siguiente.

    Instalación de la carpeta de configuración de KSP con firma EC
  • En la pantalla Nombre de usuario campo, tipo admin.
  • En la pantalla Código campo, copie el código del Repositorio de API de Postmanimportantes. Haz clic en el icono de información del Obtener token de inicio de sesión api y copie el código de la Cuerpo

    Descargue PostMan desde este este enlaceUna vez descargada, haga clic en el botón "Omitir" en la parte inferior de la ventana. En el panel, agregue una nueva colección usando el botón "+" junto a "Colecciones".

    API de GetLoginToken (http://codesignsecureapi.encryptionconsulting.com/api/auth/GetLoginToken): Esta es la API más importante, ya que le proporciona una Token de portador Para usar con el resto de las API, el contenido del cuerpo se muestra a continuación. El código sirve como contraseña para obtener el token de portador, el campo de usuario es el nombre de usuario y el campo de tipo de identidad especifica el tipo de usuario. Haga clic en Enviar Para generar una salida que incluya el token de portador en la parte inferior. Copiar este token para su uso.

    API de token de portador de cartero
  • Cambie la Identidad Tipo a 1.
  • Abandonar URL base de la API lo mismo.
  • Haga clic en Siguiente.

    Información de autenticación de usuario de configuración de KSP de firma EC
  • Haga clic en Siguiente.

    Confirmación de la instalación y configuración de KSP con firma EC
  • Luego se le notificará que este programa realizará cambios en su PC, haga clic en Sí.

    Control de cuentas de usuario de configuración de MSI
  • La instalación ya está completa.

    Instalación y configuración de KSP con firma EC completa

Una vez configurado Jenkins, necesitaremos privilegios administrativos para ejecutar el comando signtool. Para comprobar si hemos configurado los privilegios administrativos para Jenkins, y si no, para configurarlos.

  • Vaya a los servicios de su sistema (puede simplemente buscarlo)
  • Desplázate hacia abajo hasta Jenkins. En la columna "Iniciar sesión como", puedes ver la cuenta de usuario configurada para Jenkins. Si está configurada con un valor distinto a ".\Administrador" (Servicio local/Sistema, Servicio de red/Sistema), debemos configurarla como Administrador.
  • Haga doble clic en Jenkins o haga clic derecho > Propiedades para abrirlas. Vaya a Iniciar sesión.

    Seleccione “Esta cuenta”

    Configúrelo como ".\Administrador". Introduzca una contraseña, preferiblemente de administrador. Haga clic en "Aplicar" una vez hecho esto.

    Propiedades de Jenkins

Una vez configurado esto, nos dirigiremos a Jenkins. Cualquier URL o nombre de host que haya especificado durante la configuración, al acceder desde su navegador, accederá a Jenkins. En mi sistema, lo he configurado como http://localhost:8080/ (También es predeterminado).

En su Panel de Control siga los pasos a continuación:

  • Desde el Panel de Control, haga clic en Nuevo Elemento.

    panel de control de Jenkins
  • Ingrese cualquier nombre de elemento y haga clic en tubería y haga clic en Aceptar.

    Jenkins ingresa el nombre del artículo
  • En la página de configuración, en General, coloque una descripción como desee.

    configuración general de jenkins
  • Desplácese hasta la parte inferior para encontrar Pipeline.

    Jenkins configura la canalización
  • Escriba el script en el cuadro de script y haga clic en "Guardar". Deberá editar la variable de entorno según su configuración.

    canalización { agente cualquier entorno { SM_KEY_NAME='evcodesigning' SM_CLIENT_CERT_FILE='C:\\Usuarios\\Administrador\\Escritorio\\ParaPruebas\\evcodesigning.pem' SM_HASHING_ALGORITHM='SHA256' SM_TIME_STAMP_SERVER="http://timestamp.digicert.com" SM_FILEPATH="C:\\Usuarios\\Administrador\\Escritorio\\ParaPruebas\\AgentService.exe" } etapas { stage('Firma de código') { pasos { dir('C:\\Usuarios\\Administrador\\Escritorio\\ParaPruebas'){ bat 'signtool sign /csp "Proveedor de almacenamiento de claves de consultoría de cifrado" /kc %SM_KEY_NAME% /fd %SM_HASHING_ALGORITHM% /f %SM_CLIENT_CERT_FILE% /tr %SM_TIME_STAMP_SERVER% /td SHA256 %SM_FILEPATH%' } } } } }
    
  • Haga clic en compilar ahora y verá un número de compilación ejecutándose en la pantalla.

    compilación de jenkins
  • Si hace clic en el número de compilación y va a la salida de la consola, verá que su archivo ha sido firmado.

    Jenkins firmó el archivo correctamente