Intégration de la signature de code dans le cloud avec Travis CI

Cet article montre comment vous pouvez effectuer une signature de code automatisée sur Travis CI en intégrant eSigner CodeSignTool à votre pipeline. 

eSigner est notre plate-forme de signature de code à distance qui offre le même niveau de sécurité que les jetons USB et le HSMS en réseau, mais de manière plus efficace et intuitive.  Une partie de la boîte à outils eSigner est CodeSignTool : un utilitaire de ligne de commande sécurisé qui est idéal pour effectuer la signature de code d'entreprise dans divers environnements CI/CD, y compris Travis.
SSL.com EV Signature du code Les certificats aident à protéger votre code contre les falsifications non autorisées et les compromis avec le plus haut niveau de validation, et sont disponibles pour aussi peu que 249 $ par année. Vous pouvez également utilisez votre certificat EV Code Signing à grande échelle dans le cloud avec eSigner.

COMMANDER MAINTENANT

Variables d'environnement

  • USERNAME: nom d'utilisateur du compte SSL.com. (Obligatoire)
  • MOT DE PASSE: Mot de passe du compte SSL.com (Requis)
  • CREDENTIAL_ID: ID d'identification pour la signature du certificat. Si credential_id est omis et que l'utilisateur n'a qu'un seul certificat de signature de code eSigner, CodeSignTool utilisera celui-ci par défaut. Si l'utilisateur possède plusieurs certificats de signature de code, ce paramètre est obligatoire. (Obligatoire)
  • TOTP_SECRET: Secret OAuth TOTP. Vous pouvez accéder à des informations détaillées sur https://www.ssl.com/how-to/automate-esigner-ev-code-signing (Obligatoire)
  • ENVIRONNEMENT_NAME : Environnement 'TEST' ou 'PROD'. (Obligatoire)

Contributions

  • chemin_fichier_entrée: Chemin de l'objet code à signer. (Obligatoire)
  • chemin_rép_sortie: Répertoire où le ou les objets de code signés seront écrits. Si output_path est omis, le fichier spécifié dans -file_path sera remplacé par le fichier signé.

Exemple de flux de travail de signature de code Java (Maven) JAR

Créer un projet

Sous le projet, créez un fichier pour Travis

Définir les composants du workflow

  1. Placer l'architecture CPU pour exécuter le travail sur

arc : amd64

  1. Langue par défaut dans laquelle exécuter les tests

langage : java

  1. Spécifiez le système d'exploitation sur lequel exécuter la tâche

système d'exploitation : linux

  1. Écrivez la distribution Ubuntu qui sera utilisée

dist : bionique

  1. Définissez les variables d'environnement globalement. La propriété au niveau du travail remplace les variables globales.
  • Notez que TERM=dumb n'est nécessaire que pour les instances de projet Gradle.
  • Sous ENVIRONMENT_NAME, placez "TEST" pour la signature test et "PROD" pour la signature en direct.

env :

  mondial:

    – PROJECT_NAME="Bonjour le monde"

    – PROJET_VERSION=”0.0.1″

    – TERME=muet

    – ENVIRONNEMENT_NAME="TEST"

  1. Spécifiez l'ordre des étapes. Tous les travaux d'une étape doivent être terminés avant l'exécution de l'étape suivante.

étapes:

  - construire

  - pancarte

Décrire l'étape de construction  

emplois:

  consistent à

        – étape : construire

  1. Le nom du travail

      nom: build-maven

  1. La distribution Ubuntu à utiliser

      dist : bionique

  1. Utiliser la commande docker pour signer  

      services:

        - docker

  1. Utiliser dotnet-cli pour construire le projet

      langage : java

  1. Version Java pour construire le projet

      jdk:

      –oraclejdk17

  1. Répertoire de cache m2 afin d'accélérer

      cache:

        répertoires :

        – $MAISON/.m2

  1. Écrire le script Avant à exécuter avant de créer le projet

      avant_script :

        # Créer des répertoires pour les artefacts

        – mkdir -p ${TRAVIS_BUILD_DIR}/artefacts

        – mkdir -p ${TRAVIS_BUILD_DIR}/paquets

        # Définir les options de construction Maven

        – export MAVEN_CLI_OPTS=”–batch-mode –errors –fail-at-end –show-version -DinstallAtEnd=true -DdeployAtEnd=true”

  1. Écrivez le script pour construire le projet.
  • Dans cet exemple de workflow de signature, plusieurs types de projets ont été créés. C'est pourquoi les fichiers des différents types de projets ont été conservés en créant des sous-dossiers. Un sous-dossier nommé 'java' a été créé pour les projets Java. Dans la capture d'écran de démonstration ci-dessus, il n'était pas nécessaire de créer un sous-dossier nommé "java", il n'a donc pas été inclus dans le script.

      script:

        # Construire un projet Maven avec les options Maven

        – mvn $MAVEN_CLI_OPTS installation propre -f java/pom.xml

         # Copier les artefacts construits dans le répertoire des artefacts

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

     

  1. Décrivez comment spécifier une liste de fichiers et de répertoires qui doivent être attachés au travail s'il réussit.

      espaces de travail :

        créer:

          nom: maven-jar-artefacts

          chemins:

            # Enregistrer l'artefact afin d'utiliser le travail de signature

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

Décrire l'étape du signe

 – scène : signe

  1. Écrivez le nom du travail

      nom : sign-jar-file

  1. Placez la distribution Ubuntu à utiliser

      dist : bionique

  1. Utiliser la commande Docker pour signer  

      services:

        - docker

     

  1. Définissez des variables d'environnement pour des tâches spécifiques.
  • Dans la capture d'écran ci-dessus, la commande sign a été définie directement dans le script sign et non sous les variables d'environnement. BoTH méthodes peuvent signer correctement avec TravisCI.

      env :

        COMMANDE = "signe"

  1. Utiliser dotnet-cli pour construire le projet

      langage : java

  1. Version Java pour construire le projet

      jdk:

      –oraclejdk17

  1. Avant le script à exécuter avant de construire le projet

      avant_script :

        # Créer des répertoires pour les artefacts

        – mkdir -p ${TRAVIS_BUILD_DIR}/artefacts

        – mkdir -p ${TRAVIS_BUILD_DIR}/paquets

     

  1. Script pour construire le projet

      script:

        # Docker Extraire l'image Docker CodeSigner

        – docker pull ghcr.io/sslcom/codedesigner:latest

        # Signer l'artefact avec l'image CodeSigner Docker

        – docker run -i –rm –dns 8.8.8.8 –hôte réseau –volume ${TRAVIS_BUILD_DIR}/packages:/codesign/examples

          –volume ${TRAVIS_BUILD_DIR}/artefacts :/coconception/sortie

          -e USERNAME=${USERNAME} -e PASSWORD=${PASSWORD} -e CREDENTIAL_ID=${CREDENTIAL_ID} -e TOTP_SECRET=${TOTP_SECRET}

          -e ENVIRONMENT_NAME=${ENVIRONMENT_NAME} ghcr.io/sslcom/codedesigner:latest ${COMMAND}

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

  1. Utilisé pour spécifier une liste de fichiers et de répertoires qui doivent être attachés au travail s'il réussit.

      espaces de travail :

        utilisation:

          – maven-jar-artefacts

        créer:

          nom : fichier jar signé

          chemins:

            # Enregistrer l'artefact signé

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

SSL.com EV Signature du code Les certificats aident à protéger votre code contre les falsifications non autorisées et les compromis avec le plus haut niveau de validation, et sont disponibles pour aussi peu que 249 $ par année. Vous pouvez également utilisez votre certificat EV Code Signing à grande échelle dans le cloud avec eSigner.

COMMANDER MAINTENANT

Définir les variables d'environnement

Allez sur Travis et cliquez sur le Paramètres bouton (dans la fenêtre de contrôle qui apparaît maintenant)

Ajouter la valeur pour chaque variable

Faites défiler jusqu'à la Variables d'environnement section et cliquez sur le bouton Ajouter pour ajouter la valeur de chaque variable

Créer un dépôt Github

Recherchez les commandes push sur Github

Écrivez les commandes push dans un terminal de votre éditeur

Attendez que le travail de construction soit terminé

Sur Travis, la tâche de build devrait démarrer automatiquement après avoir poussé le code.

Initier l'étape de signature de code

Cliquez  signer section pour CodeSignTool pour démarrer le processus de signature

Attendez que votre machine virtuelle ait fini de démarrer

Confirmer si la signature du code a réussi

Vous pouvez vous référer à SSL.com Référentiel Github qui contient les codes sources de l'image docker et décrit comment l'utiliser : https://github.com/SSLcom/ci-images

Exemple de pipeline Travis CI

Découvrez l'exemple de pipeline Travis CI que nous avons créé sur github.com/SSLcom/codedesigner-travisci-sample

Autres guides d'intégration de la signature à distance du service CI/CD

Besoin de solutions personnalisées ? 

Grâce à nos connaissances spécialisées et à notre personnel d'assistance cinq étoiles, nous sommes prêts et disposés à travailler avec vous sur des solutions personnalisées ou des remises de signature de gros volumes au niveau de l'entreprise. Remplissez le formulaire ci-dessous et nous vous contacterons.

Abonnez-vous à la newsletter de SSL.com

Ne manquez pas les nouveaux articles et mises à jour de SSL.com

Restez informé et en sécurité

SSL.com est un leader mondial de la cybersécurité, PKI et les certificats numériques. Inscrivez-vous pour recevoir les dernières nouvelles de l'industrie, des conseils et des annonces de produits de SSL.com.

Nous aimerions recevoir vos commentaires

Répondez à notre enquête et faites-nous part de votre avis sur votre récent achat.