SSL.com

Integración de firma de código en la nube con GitLab CI

Este es un tutorial sobre cómo hacer una firma de código automatizada en GitLab CI usando eSigner CodeSignTool.  CodeSignTool es una utilidad de línea de comando segura que forma parte de eSigner: nuestro entorno de firma de código en la nube que beneficia a los editores y desarrolladores de software con su capacidad para llevar a cabo la firma de código empresarial de manera segura y eficiente sin complicaciones.  El siguiente flujo de trabajo de muestra muestra un código DLL de .NET que se firma en GitLab CI con eSigner.

SSL.com's EV Firma de código Los certificados ayudan a proteger su código de manipulaciones no autorizadas y compromisos con el más alto nivel de validación, y están disponibles por tan solo $ 249 por año. También puedes use su certificado de firma de código EV a escala en la nube usando eSigner.

HAZ TU PEDIDO

Variables de entorno

Ingresos

Flujo de trabajo de ejemplo de firma de DLL de código .NET

Crear un archivo yml

Agrupe los trabajos en etapas. Todos los trabajos en una etapa deben completarse antes de que se ejecute la siguiente etapa.

etapas: - construir - firmar
 

Definir variables de entorno globalmente. La propiedad de nivel de trabajo anula las variables globales.

variables: PROJECT_NAME: "HelloWorld" PROJECT_VERSION: "0.0.1" DOTNET_VERSION: "3.1" ENVIRONMENT_NAME: "PROD"
 

Definir el Etapa de construcción

A continuación se muestra la definición de su trabajo para construir el artefacto dll

construir-dotnet:

 

  1. Defina en qué etapa se ejecutará el trabajo.
  etapa: construir

 

  1. Coloque el nombre completo de la imagen que se debe utilizar. Debe contener la parte del Registro si es necesario.
 imagen: mcr.microsoft.com/dotnet/sdk:3.1-bullseye

 

  1. Defina los scripts que deben ejecutarse *antes* del trabajo. Se puede configurar globalmente o por trabajo.
before_script: - mkdir -p ${CI_PROJECT_DIR}/artefactos - mkdir -p ${CI_PROJECT_DIR}/paquetes

 

  1. Defina los scripts de Shell ejecutados por el Runner. Crear artefacto DLL
script: - dotnet build dotnet/${PROJECT_NAME}.csproj -c Release - cp dotnet/bin/Release/netcoreapp${DOTNET_VERSION}/${PROJECT_NAME}-${PROJECT_VERSION}.dll ${CI_PROJECT_DIR}/packages/${ NOMBRE_PROYECTO}.dll

 

  1. Especifique una lista de archivos y directorios que deben adjuntarse al trabajo si tiene éxito.
artefactos: rutas: - ${CI_PROJECT_DIR}/packages/HelloWorld.dll expire_in: 5 minutos
 

Definir la etapa de signos

A continuación se muestra la definición de su trabajo para firmar el artefacto dll

firmar-dotnet-artefactos:

 

  1. Defina en qué etapa se ejecutará el trabajo.
  etapa: firmar

 

  1. Coloque el nombre completo de la imagen que se debe utilizar. Debe contener la parte del Registro si es necesario.
 imagen: ventana acoplable: 19.03.0

 

  1. Definir servicios. Esto es similar a la propiedad `image`, pero vinculará los servicios especificados al contenedor `image`.
servicios: - docker:19.03.0-dind

 

  1. Defina variables de entorno para trabajos específicos.
  variables: COMANDO: "firmar"

 

  1. Defina los scripts que deben ejecutarse *antes* del trabajo. Se puede configurar globalmente o por trabajo.
  before_script: - mkdir -p ${CI_PROJECT_DIR}/artefactos - mkdir -p ${CI_PROJECT_DIR}/paquetes

 

  1. Coloque los scripts de Shell ejecutados por el Runner. Firme el artefacto .NET dll con CodeSignTool Docker Image
script: - docker pull ghcr.io/sslcom/codesigner:latest - docker run -i --rm --dns 8.8.8.8 --network host --volume ${CI_PROJECT_DIR}/packages:/codesign/examples --volume $ {CI_PROJECT_DIR}/artifacts:/codesign/output -e USERNAME=${USERNAME} -e PASSWORD=${PASSWORD} -e CREDENTIAL_ID=${CREDENTIAL_ID} -e TOTP_SECRET=${TOTP_SECRET} -e ENVIRONMENT_NAME=${ENVIRONMENT_NAME} ghcr.io/sslcom/codesigner:último ${COMANDO} -input_file_path=/codesign/examples/${PROJECT_NAME}.dll -output_dir_path=/codesign/output

 

  1. Escriba el script que se puede usar para especificar una lista de archivos y directorios que se deben adjuntar al trabajo si tiene éxito.
artefactos: rutas: - ${CI_PROJECT_DIR}/artifacts/${PROJECT_NAME}.dll expire_in: 1 días

 

  1. Especifique una lista de nombres de trabajos de etapas anteriores desde las que se deben cargar los artefactos.
dependencias: - build-dotnet

SSL.com's EV Firma de código Los certificados ayudan a proteger su código de manipulaciones no autorizadas y compromisos con el más alto nivel de validación, y están disponibles por tan solo $ 249 por año. También puedes use su certificado de firma de código EV a escala en la nube usando eSigner.

HAZ TU PEDIDO

Iniciar la etapa de construcción

Crea un repositorio

Consulte las instrucciones de la línea de comandos en Gitlab como se ve en la captura de pantalla a continuación

Empuje su carpeta

Haz esto haciendo clic terminal en el menú, seguido de Nueva terminal.

Escriba el script de inserción en su terminal para impulsar el proyecto 

Haga clic en el botón Construir

Después de activar la canalización, proceda a compilar

Comprobar si la construcción es exitosa  

Iniciar la etapa de firma

Proceder a firmar el artefacto

Confirme si la firma del código es exitosa

Ahora puede descargar el archivo firmado

Puede consultar el SSL.com Repositorio de Github que contiene los códigos fuente de la imagen de Docker y describe cómo usarlo: https://github.com/SSLcom/ci-images 

Ejemplo de canalización de CI de Gitlab

Echa un vistazo a la canalización de Gitlab CI de muestra que hemos creado en github.com/SSLcom/codesigner-gitlabci-sample

Otras guías de integración de firma remota de CI/CD

¿Necesita soluciones personalizadas? 

Con nuestro conocimiento experto y personal de soporte de cinco estrellas, estamos listos y dispuestos a trabajar con usted en soluciones personalizadas o descuentos en firmas de alto volumen a nivel empresarial. Complete el siguiente formulario y nos pondremos en contacto.

Salir de la versión móvil