Guía de integración de la firma en la nube de Azure DevOps

Esta es una guía sobre cómo se puede integrar Azure DevOps con eSigner CodeSignTool para realizar la firma de código automatizada.

CodeSignTool es una utilidad de línea de comandos adecuada para los procesos de firma de código en la nube y se integra a la perfección con varias plataformas de CI/CD. Forma parte de eSigner: nuestro servicio de firma remota que ofrece un enfoque eficiente, seguro y fácil de usar para la firma de códigos.

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

  • NOMBRE DE USUARIO: nombre de usuario de la cuenta SSL.com. (Requerido)
  • CONTRASEÑA: Contraseña de la cuenta SSL.com (Obligatorio)
  • CREDENCIAL_ID: ID de credencial para el certificado de firma. Si se omite credential_id y el usuario tiene solo un certificado de firma de código de eSigner, CodeSignTool lo usará de forma predeterminada. Si el usuario tiene más de un certificado de firma de código, este parámetro es obligatorio. (Requerido)
  • TOTP_SECRETO: OAuth TOTP Secreto. Puede acceder a información detallada sobre https://www.ssl.com/how-to/automate-esigner-ev-code-signing (obligatorio)
  • ENTORNO_NOMBRE : Entorno 'TEST' o 'PROD'. (Requerido)

 

Ingresos

  • ruta_archivo_entrada: ruta del objeto de código que se firmará. (Requerido)
  • salida_dir_ruta: Directorio donde se escribirán los objetos de código firmados. Si se omite output_path, el archivo especificado en -file_path se sobrescribirá con el archivo firmado.

Crear un proyecto en visualstudio.com

Cree un nuevo archivo .yml en su editor de código

Establecer activadores de integración y variables de entorno

Disparadores de integración continua

desencadenar:

  - ninguna

 

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

variables:

  buildConfiguration: 'Lanzamiento'

Agrupar trabajos en etapas

Escriba los pasos para la etapa de construcción. Todos los trabajos en una etapa deben completarse antes de que se ejecute la siguiente etapa.

etapas:

  – etapa: construir

    # Cuando se ejecuta el flujo de trabajo, este es el nombre que se registra

    displayName: Construir

    trabajos:

      - trabajo:

        piscina:

           Ejecutar trabajo en máquinas virtuales de Windows

          vmImage: 'windows-latest'

        pasos:

           Instalar Dotnet 6.0.x

        – tarea: UseDotNet@2

          displayName: 'Instalar .NET Core SDK'

          entradas:

            versión: '6.0.x'

            performMultiLevelLookup: verdadero

            includePreviewVersions: verdadero

       

            Restaurar proyecto Dotnet

        – tarea: DotNetCoreCLI@2

          displayName: Restaurar

          entradas:

            comando: 'restaurar'

 

           Cree un proyecto dotnet con la configuración de lanzamiento

        – tarea: DotNetCoreCLI@2

          displayName: Construir

          entradas:

            comando: construir

            proyectos: HelloWorld.csproj

            argumentos: '–configuración $(buildConfiguration)'

 

           Crear directorios para artefactos firmados

        – powershell: Nuevo elemento -Directorio de tipo de elemento -Path ./artifacts

          displayName: 'Directorios creados para artefactos'

 

           Crear directorios para paquetes firmados

        – powershell: Nuevo artículo - Directorio de tipo de artículo - Ruta ./paquetes

          displayName: 'Directorios creados para paquetes'

 

           Copie el artefacto para firmar la ruta

        – powershell: Copiar elemento ./bin/Release/netcoreapp3.1/HelloWorld-0.0.1.dll -Destino ./packages/HelloWorld.dll

          displayName: "Copiar artefactos creados en el directorio de paquetes"

 

           Guarde el artefacto para usar el trabajo de firma

        – tarea: PublishBuildArtifacts@1

          displayName: 'Guardar para ser artefacto firmado para descargar'

          entradas:

            ruta de publicación: ./packages/HelloWorld.dll

            nombre del artefacto: HelloWorld.dll

Escriba los pasos para la etapa Sign

– etapa: Signo

    # Cuando se ejecuta el flujo de trabajo, este es el nombre que se registra

    displayName: Signo

    trabajos:

    - trabajo:

      piscina:

         Ejecutar trabajo en máquinas virtuales Ubuntu

        vmImage: "Ubuntu-último"

      pasos:

         Crear directorios para artefactos firmados

      – guión: mkdir -p ./artefactos && mkdir -p ./paquetes

        displayName: "Directorios creados para artefactos y paquetes"

 

         Descargar el artefacto a firmar

      – tarea: DescargarPipelineArtifact@2

        entradas:

          artefacto: HelloWorld.dll

          ruta de descarga: ./paquetes

 

         Instalar Docker 17.09.0-ce

      – tarea: DockerInstaller@0

        displayName: Instalador de Docker

        entradas:

          dockerVersión: 17.09.0-ce

          tipo de lanzamiento: estable

 

         Docker Pull CodeSigner Imagen de Docker

      – guión: docker pull ghcr.io/sslcom/codesigner:latest

        displayName: 'Docker Pull CodeSigner Docker Image'

         Firme el artefacto con la imagen de la ventana acoplable CodeSigner

      – script: docker run -i –rm –dns 8.8.8.8 –host de red –volumen $PWD/paquetes:/codiseño/ejemplos –volume $PWD/artefactos:/codiseño/salida

                -e NOMBRE DE USUARIO=$(NOMBRE DE USUARIO) -e CONTRASEÑA=$(CONTRASEÑA) -e ID_CREDENCIAL=$(ID_CREDENCIAL) -e TOTP_SECRET=$(TOTP_SECRET)

Si la contraseña tiene caracteres especiales, entonces debe estar entre comillas.

                -e NOMBRE_ENTORNO=$(NOMBRE_ENTORNO) ghcr.io/sslcom/codesigner:última señal -input_file_path=/codesign/examples/HelloWorld.dll

                -output_dir_path=/codiseño/salida

        displayName: 'Firmar el artefacto con la imagen de la ventana acoplable CodeSigner'

 

         Guardar artefacto firmado para descargar

      – tarea: PublishBuildArtifacts@1

        displayName: 'Guardar artefacto firmado para descargar'

        entradas:

          ruta de publicación: ./artifacts/HelloWorld.dll

          nombre del artefacto: HelloWorld.dll

Crear un nuevo archivo .gitignore

Escribir:

papelera

obj

.vscode

En la barra de mensajes, escriba Tubería creada.yml y haga clic en el COMPROMÉTASE .

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

Proceda a hacer clic en el Sincronizar cambios .

Vaya a visualstudio.com y haga clic en Repos en el tablero

Actualice la página para ver el archivo yml

Haga Clic en Pipelines en el tablero

A continuación, haz clic Crear canalización

Haga clic en Azure Repos Git

Seleccione su archivo YAML

Haga Clic en Variables botón seguido por Nueva variable

Coloque el valor para cada variable de entorno y haga clic en el OK .

Haga clic en el signo + para seguir agregando cada variable

Después de colocar todas las variables, proceda a crear su canalización

Ejecute su canalización

Haga Clic en Pipelines en el tablero. Haga clic en los tres puntos (más opciones) en su tubería. Hacer clic Ejecutar canalización. Finalmente, haga clic en Ejecutar del botón.

Haga clic en Construir para iniciar la etapa de construcción

Compruebe si cada trabajo en la etapa de construcción es exitoso

Haga clic en la flecha desplegable junto a Trabajos para ver el estado de cada trabajo de compilación

Inicie la etapa Firmar haciendo clic en Trabajos

Compruebe si cada paso en el proceso de firma es exitoso

Vuelva a verificar si las etapas de construcción y firma son exitosas

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 Azure DevOps

Consulte la canalización de ejemplo de Azure DevOps que hemos creado en github.com/SSLcom/codesigner-azuredevops-sample

Otras guías de integración de firma remota

¿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.

Twitter
Facebook
Etiqueta LinkedIn
Reddit
Correo electrónico

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.