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

Este artículo muestra cómo puede realizar la firma de código automatizada en Travis CI mediante la integración de eSigner CodeSignTool a su canalización. 

eSigner es nuestra plataforma de firma de código remoto que brinda el mismo nivel de seguridad que los tokens USB y el HSMS en red, pero de una manera más eficiente e intuitiva.  Parte del kit de herramientas eSigner es CodeSignTool: una utilidad de línea de comando segura que es ideal para realizar la firma de código empresarial en varios entornos de CI/CD, incluido Travis.
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.

Flujo de trabajo de ejemplo de firma JAR de código Java (Maven)

Crear un proyecto

En el proyecto, cree un archivo para Travis

Definir los componentes del flujo de trabajo

  1. Coloque la arquitectura de la CPU para ejecutar el trabajo

arco: amd64

  1. Idioma predeterminado para ejecutar pruebas en

idioma: Java

  1. Especificar el sistema operativo para ejecutar el trabajo

sistema operativo: linux

  1. Escriba la distribución de Ubuntu que se utilizará

distancia: bionica

  1. Definir variables de entorno globalmente. La propiedad de nivel de trabajo anula las variables globales.
  • Tenga en cuenta que TERM=dumb solo es necesario para las instancias de proyectos de Gradle.
  • En ENVIRONMENT_NAME, coloque "TEST" para la firma de prueba y "PROD" para la firma en vivo.

entorno:

  global:

    – NOMBRE_PROYECTO=”HolaMundo”

    – PROYECTO_VERSIÓN=”0.0.1″

    – TÉRMINO = tonto

    – ENTORNO_NOMBRE=”PRUEBA”

  1. Especifique el orden de las etapas. Todos los trabajos en una etapa deben completarse antes de que se ejecute la siguiente etapa.

etapas:

  - construir

  - señal

Esquema de la etapa de construcción  

trabajos:

  incluyen:

        – etapa: construir

  1. el nombre del trabajo

      nombre: build-maven

  1. La distribución de Ubuntu a usar

      distancia: bionica

  1. Use el comando docker para firmar  

      servicios:

        - ventana acoplable

  1. Use dotnet-cli para construir el proyecto

      idioma: Java

  1. Versión de Java para construir el proyecto.

      JDK:

      – oráculojdk17

  1. Directorio de caché m2 para acelerar

      cache:

        directorios:

        – $HOGAR/.m2

  1. Escriba el script Before para ejecutarlo antes de compilar el proyecto

      antes_script:

        # Crear directorios para artefactos

        – mkdir -p ${TRAVIS_BUILD_DIR}/artefactos

        – mkdir -p ${TRAVIS_BUILD_DIR}/paquetes

        # Establecer las opciones de compilación de Maven

        – exportar MAVEN_CLI_OPTS=”–modo por lotes –errores –fallo al final –mostrar versión -DinstallAtEnd=true -DdeployAtEnd=true”

  1. Escriba el script para construir el proyecto.
  • En este flujo de trabajo de ejemplo de firma, se crearon varios tipos de proyectos. Es por eso que los archivos de diferentes tipos de proyectos se mantuvieron creando subcarpetas. Se creó una subcarpeta llamada 'java' para proyectos Java. En la captura de pantalla de demostración anterior, no había necesidad de crear una subcarpeta llamada 'java', por lo que no se incluyó en el script.

      script:

        # Construya el proyecto Maven con las opciones de Maven

        – mvn $MAVEN_CLI_OPTS instalación limpia -f java/pom.xml

         # Copiar artefactos construidos al directorio de artefactos

        – cp java/target/${PROJECT_NAME}-${PROJECT_VERSION}.jar ${TRAVIS_BUILD_DIR}/packages/${PROJECT_NAME}.jar

     

  1. Resuma cómo especificar una lista de archivos y directorios que deben adjuntarse al trabajo si tiene éxito.

      espacios de trabajo:

        crear:

          nombre: maven-jar-artefactos

          caminos:

            # Guardar artefacto para usar el trabajo de firma

            – ${TRAVIS_BUILD_DIR}/paquetes/${PROJECT_NAME}.jar

Esquema de la etapa de signos

 – etapa: signo

  1. Escribe el nombre del trabajo

      nombre: firmar-archivo-jar

  1. Coloque la distribución de Ubuntu para usar

      distancia: bionica

  1. Use el comando Docker para firmar  

      servicios:

        - ventana acoplable

     

  1. Defina variables de entorno para trabajos específicos.
  • En la captura de pantalla anterior, el comando de firma se definió directamente en el script de firma y no en las variables de entorno. BOTH los métodos pueden firmar correctamente con TravisCI.

      entorno:

        COMANDO = "signo"

  1. Use dotnet-cli para construir el proyecto

      idioma: Java

  1. Versión de Java para construir el proyecto.

      JDK:

      – oráculojdk17

  1. Antes de ejecutar el script antes de construir el proyecto

      antes_script:

        # Crear directorios para artefactos

        – mkdir -p ${TRAVIS_BUILD_DIR}/artefactos

        – mkdir -p ${TRAVIS_BUILD_DIR}/paquetes

     

  1. Script para construir el proyecto

      script:

        # Docker Extraer CodeSigner Docker Image

        – docker pull ghcr.io/sslcom/codesigner:último

        # Firmar artefacto con CodeSigner Docker image

        – docker run -i –rm –dns 8.8.8.8 –host de red –volumen ${TRAVIS_BUILD_DIR}/packages:/codesign/examples

          –volumen ${TRAVIS_BUILD_DIR}/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}

          -e NOMBRE_ENTORNO=${NOMBRE_ENTORNO} ghcr.io/sslcom/codesigner:último ${COMANDO}

          -input_file_path=/codesign/examples/${PROJECT_NAME}.jar -output_dir_path=/codesign/output

  1. Se utiliza para especificar una lista de archivos y directorios que deben adjuntarse al trabajo si se realiza correctamente.

      espacios de trabajo:

        utilizar:

          – maven-jar-artefactos

        crear:

          nombre: archivo-jar-firmado

          caminos:

            # Guardar artefacto firmado

            – ${TRAVIS_BUILD_DIR}/artefactos/${PROJECT_NAME}.jar

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

Definir las variables de entorno

Ve a Travis y haz clic en el Ajustes .

Agregar el valor de cada variable

Desplázate hacia abajo hasta Variables de entorno sección y haga clic en el botón Agregar para agregar el valor de cada variable

Crear un repositorio de Github

Busque los comandos push en Github

Escriba los comandos push en una terminal en su editor

Espere a que se complete el trabajo de compilación

En Travis, el trabajo de compilación debería comenzar automáticamente después de haber enviado el código.

Iniciar la etapa de firma de código

Haga clic en el firmar sección para Herramienta CodeSign para iniciar el proceso de firma

Espere a que su máquina virtual termine de arrancar

Confirme si la firma del código es exitosa

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 Travis

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

Otras guías de integración de firma remota del servicio 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.

Suscríbase al boletín de SSL.com

No te pierdas los nuevos artículos y actualizaciones de SSL.com

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.