Icône du site SSL.com

Comment intégrer eSigner CKA avec les outils CI/CD pour la signature de code automatisée

Les deux tableaux ci-dessous montrent comment intégrer eSigner CKA avec Outils d'intégration continue/livraison continue (CI/CD) en signature de code automatisée. Des guides pour CircleCI, GitHub Actions, Gitlab CI et Travis CI sont fournis pour la signature Fichiers .NET. Des guides pour Azure Pipeline, GitHub Actions, Gitlab CI et Travis CI sont fournis pour la signature Fichiers .vsix.

eSigner CKA (adaptateur de clé cloud) est une application basée sur Windows qui utilise l'interface CNG (KSP Key Service Provider) pour permettre à des outils tels que certutil.exe et signtool.exe d'utiliser le API conforme à eSigner Cloud Signature Consortium (CSC)  pour les opérations de signature de code d'entreprise. Trois conditions préalables doivent être remplies avant de pouvoir effectuer une signature de code basée sur eSigner sur des outils CI/CD :

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

Exemples de workflows de signature .vsix

Variables d'environnement
Pour des exemples de codes, vous pouvez vous référer au SSL.com Référentiel Github sur : https://github.com/SSLcom/esigner-sample

.DLL de code NET Exemples de workflows de signature

Intégration CircleCIIntégration des actions GitHubIntégration CI GitlabIntégration Travis CI

Exemple de workflow de signature de DLL de code .NET

Préparer les composants du workflow

  1. Créez un dossier .circleci sur votre éditeur. Incluez les flux de travail avec le dossier et créez un fichier yml en tant que config.yml sous le dossier.
  2. Définissez la version de CircleCI. Le champ de version est destiné à être utilisé afin d'émettre des avertissements en cas d'obsolescence ou de modifications avec rupture.

    Version: 2.1

  3. Les orbs sont des packages réutilisables de configuration CircleCI que vous pouvez partager entre plusieurs projets, vous permettant de créer des commandes, des tâches et des exécuteurs encapsulés et paramétrés pouvant être utilisés sur plusieurs projets. Pour utiliser l'outil signtool, cela doit être Windows.

    orbes :

       gagner : cercleci/windows@5.0.0

  4. Invoquez des tâches via des workflows. Les workflows orchestrent un ensemble de tâches à exécuter. 

    flux de travail :

       # Le nom du flux de travail.

       signe-fichier :

          # Dans le workflow, vous définissez les tâches que vous souhaitez exécuter.

             emplois:

                – fichier de signature

  5. Définissez une tâche à appeler ultérieurement dans un workflow.

    emplois:

       signe-fichier :

  6. Spécifiez l'environnement d'exécution. Nous devons utiliser l'exécuteur Windows car signtool est nécessaire.

    exécuteur:

       nom : win/server-2019

       taille moyenne

       variante : vs 2019

  7. Placez le répertoire de travail pour le travail 

    répertoire_de_travail : /home/circleci/project

  8. Ajouter des étapes au travail Voir : https://circleci.com/docs/2.0/configuration-reference/#steps  

    étapes:

  9. Extrayez le code source afin que le workflow puisse y accéder.

    - vérifier

  10. Téléchargez et décompressez la configuration eSignerCKA

    - Cours:

          nom : Téléchargez et décompressez la configuration eSignerCKA

          commande : |

             Invoke-WebRequest -OutFile eSigner_CKA_1.0.3.zip "https://www.ssl.com/download/ssl-com-esigner-cka-1-0-3"

             Développez-Archive -Force eSigner_CKA_1.0.3.zip

             Supprimer l'élément eSigner_CKA_1.0.3.zip

             Move-Item -Destination « eSigner_CKA_1.0.3.exe » -Chemin « eSigner_CKA_1.0.3SSL.COM eSigner CKA_1.0.3.exe »

  11. Installer eSignerCKA

    - Cours:

          nom : Configurer eSignerCKA en mode silencieux

          commande : |

                mkdir -p "/home/circleci/project/eSignerCKA"

                ./eSigner_CKA_1.0.3.exe /CURRENTUSER /VERYSILENT /SUPPRESSMSGBOXES /DIR=”/home/circleci/project/eSignerCKA” | Hors-Nul

  12. Définir les informations de compte SSLcom sur eSignerCKA

    - Cours:

          name : Config Account Information on eSignerCKA

          commande : |

                /home/circleci/project/eSignerCKA/eSignerCKATool.exe config -mode $env:MODE -user "$env:USERNAME" -pass "$env:PASSWORD" -totp "$env:TOTP_SECRET" -key "/home/circleci /project/eSignerCKA/master.key” -r

  13. Décharger et charger le certificat dans le magasin de certificats Windows

    - Cours:

          name : Charger le certificat dans le Windows Store

          commande : |

                /home/circleci/project/eSignerCKA/eSignerCKATool.exe décharger

                /home/circleci/project/eSignerCKA/eSignerCKATool.exe charger

  14. Sélectionnez le certificat de signature de code et obtenez l'empreinte numérique pour la signature et l'artefact de signature avec l'outil de signature

    - Cours:

          nom : sélectionnez le certificat dans le Windows Store et signez le fichier d'exemple avec SignTool

          commande : |

                $CodeSigningCert = Get-ChildItem Cert:CurrentUserMy -CodeSigningCert | Sélectionner un objet -Premier 1

                & 'C:Program Files (x86)Windows Kits10App Certification Kitsigntool.exe' sign /debug /fd sha256 /tr http://ts.ssl.com /td sha256 /sha1 « $($CodeSigningCert.Thumbprint) » « HelloWorld. dll"

Exemple de workflow de signature de DLL de code .NET

Préparer les composants du workflow

  1. Créez un dossier .github/workflows sur votre éditeur. Incluez les flux de travail avec le dossier et créez un fichier sign.yml sous le dossier.
  2. Nommez votre projet et le type de flux de travail impliqué 

    Nom : artefact de signe

  3. Déclencher ce workflow sur un push 

    activé : appuyez sur

  4. Créer une variable d'environnement

    env :

     MASTER_KEY : clé.maître

     SIGNABLE_FILE_PATH : HelloWorld.dll

     INSTALL_DIR : C:UtilisateursrunneradmineSignerCKA

     MASTER_KEY_FILE : C:UsersrunneradmineSignerCKAmaster.key

  5. Définir les jobs sur votre éditeur

    emplois:

     signe-fichier :

  6. Exécuter le travail sur Windows Runners'exécute sur : les dernières fenêtres

  7. Créez un nom. Lorsque le workflow s'exécute, c'est le nom qui est consigné.

    nom : Signer le fichier DLL avec eSignerCKA

Décrire les étapes du travail de signature

  1. Extrayez le code source afin que le workflow puisse y accéder.

    – nom : Référentiel de paiement

       utilise : actions/checkout@v3

  2. Téléchargez et décompressez la configuration eSignerCKA

    – nom : Télécharger et décompresser la configuration eSignerCKA

      exécutez : |

          Invoke-WebRequest -OutFile eSigner_CKA_1.0.3.zip "https://www.ssl.com/download/ssl-com-esigner-cka-1-0-3"

          Développez-Archive -Force eSigner_CKA_1.0.3.zip

          Supprimer l'élément eSigner_CKA_1.0.3.zip

          Move-Item -Destination « eSigner_CKA_1.0.3.exe » -Chemin « eSigner_CKA_1.0.3SSL.COM eSigner CKA_1.0.3.exe »
  3. Installer eSignerCKA

    – nom : Configurer eSignerCKA en mode silencieux

      exécutez : |

          Nouvel élément -ItemType Directory -Force -Path ${{ env.INSTALL_DIR }}

          ./eSigner_CKA_1.0.3.exe /CURRENTUSER /VERYSILENT /SUPPRESSMSGBOXES /DIR=”${{ env.INSTALL_DIR }}” | Hors-Nul

  4. Définir les informations de compte SSL.com sur eSignerCKA

    - nom : informations de compte de configuration sur eSignerCKA

      exécutez : |

          ${{ env.INSTALL_DIR }}/eSignerCKATool.exe config -mode "${{ secrets.MODE }}" -user "${{ secrets.USERNAME }}"

         -pass "${{ secrets.PASSWORD }}" -totp "${{ secrets.TOTP_SECRET }}" -key "${{ env.MASTER_KEY_FILE }}" -r

  5. Décharger et charger le certificat dans le magasin de certificats Windows

    – nom : charger le certificat dans le Windows Store

      exécutez : |

          Déchargement de ${{ env.INSTALL_DIR }}/eSignerCKATool.exe

          chargement de ${{ env.INSTALL_DIR }}/eSignerCKATool.exe
  6. Sélectionnez le certificat de signature de code et obtenez une empreinte numérique pour la signature

    - nom : sélectionnez le certificat dans le Windows Store

      exécutez : |

          $CodeSigningCert = Get-ChildItem Cert:CurrentUserMy -CodeSigningCert | Sélectionner un objet -Premier 1

          echo "THUMBPRINT=$($CodeSigningCert.Thumbprint)" >> $env:GITHUB_ENV
  7. Artefact de signe avec signtool

    – nom : signer un exemple de fichier avec SignTool

      exécutez : |

          & 'C:/Program Files (x86)/Windows Kits/10/bin/10.0.17763.0/x86/signtool.exe' signe /debug /fd sha256 /tr http://ts.ssl.com /td sha256 /sha1 ${{ env.THUMBPRINT }} ${{ env.SIGNABLE_FILE_PATH }}

Exemple de workflow de signature de DLL de code .NET

Définir les composants du workflow

  1. Ccréer un fichier yml en tant que .gitlab-ci.yml sous le dossier.
  2. Permet de sélectionner des coureurs dans la liste des coureurs disponibles. Un exécuteur doit avoir toutes les balises répertoriées ici pour exécuter la tâche.

    .windows_runners :

          tags:

                – fenêtres partagées

                - les fenêtres

                – fenêtres-1809

  3. Regroupe les tâches en étapes. Tous les travaux d'une étape doivent être terminés avant l'exécution de l'étape suivante.

    étapes:

          - pancarte

  4. Vous trouverez ci-dessous la définition de votre travail pour signer le fichier. Définissez à quelle étape le travail sera exécuté.

    signe-fichier :

         scène : signe

  5. Le nom d'un ou plusieurs travaux dont héritera la configuration.

    s'étend :

         – .windows_runners
  6. Écrivez le script pour signer le fichier.

    script:

    # Téléchargez et décompressez la configuration eSignerCKA

       – powershell.exe -ExecutionPolicy Bypass -Command 'Invoke-WebRequest -OutFile eSigner_CKA_1.0.3.zip "https://www.ssl.com/download/ssl-com-esigner-cka-1-0-3"'

       – powershell.exe -ExecutionPolicy Bypass -Command 'Expand-Archive -Force eSigner_CKA_1.0.3.zip'

       – powershell.exe -ExecutionPolicy Bypass -Command 'Remove-Item eSigner_CKA_1.0.3.zip'

       – powershell.exe -ExecutionPolicy Bypass -Command 'Move-Item -Destination « eSigner_CKA_1.0.3.exe » -Chemin « eSigner_CKA_1.0.3SSL.COM eSigner CKA_1.0.3.exe »'


    # Configurer eSignerCKA en mode silencieux

    – powershell.exe -ExecutionPolicy Bypass -Command './eSigner_CKA_1.0.3.exe /CURRENTUSER /VERYSILENT /SUPPRESSMSGBOXES /DIR=”C:Usersgitlab_runnerDesktopeSignerCKA”'


    # Vérifier le répertoire d'installation

    – powershell.exe -ExecutionPolicy Bypass -Command 'dir C:Usersgitlab_runnerDesktopeSignerCKA'


    # Configurer les informations de compte sur eSignerCKA

    – powershell.exe -ExecutionPolicy Bypass -Command 'C:Usersgitlab_runnerDesktopeSignerCKAeSignerCKATool.exe config -mode ${MODE}

         -user "${USERNAME}" -pass "${PASSWORD}" -totp "${TOTP_SECRET}" -key "C:Usersgitlab_runnerAppDataRoamingeSignerCKAmaster.key" -r'


    # Décharger le certificat dans le Windows Store

    – powershell.exe -ExecutionPolicy Bypass -Command 'C:Usersgitlab_runnerDesktopeSignerCKAeSignerCKATool.exe décharger'


    # Charger le certificat dans le Windows Store

    – powershell.exe -ExecutionPolicy Bypass -Command 'C:Usersgitlab_runnerDesktopeSignerCKAeSignerCKATool.exe charger'


       # Vérifier le répertoire de données

       – powershell.exe -ExecutionPolicy Bypass -Command 'dir C:Usersgitlab_runnerAppDataRoamingeSignerCKA'


       # Vérifier le répertoire des données de configuration

       – powershell.exe -ExecutionPolicy Bypass -Command 'dir C:Usersgitlab_runnerAppDataRoamingeSignerCKAConfig'


    # Sélectionnez le certificat dans le Windows Store

    – powershell.exe -ExecutionPolicy Bypass -Command '$CodeSigningCert = Get-ChildItem Cert:CurrentUserMy -CodeSigningCert | Sélectionner-Objet -Premier 1 ; echo $CodeSigningCert.Thumbprint > .Thumbprint'

    # Empreinte numérique du certificat de débogage

    – powershell.exe -ExecutionPolicy Bypass -Command 'Set-Variable -Name Thumbprint -Value (Get-Content .Thumbprint); echo $Empreinte'


    # Signer un exemple de fichier avec SignTool

    – powershell.exe -ExecutionPolicy Bypass -Command "Set-Variable -Name Thumbprint -Value (Get-Content .Thumbprint);

         'C:Program Files (x86)Windows Kits10bin10.0.17763.0x86signtool.exe sign /debug /fd sha256 /tr http://ts.ssl.com /td sha256 /sha1 $Thumbprint HelloWorld.dll'"

Exemple de workflow de signature de DLL de code .NET

Définir les composants du workflow

  1. Créez un fichier yml en tant que .travis.yml sous le dossier racine.
  2. Placez l'architecture du processeur sur laquelle exécuter le travail.

    arc : amd64

  3. Langue par défaut pour exécuter les travaux sur Travis CI

    langue: csharp

  4. Le système d'exploitation sur lequel exécuter la tâche

    os: fenêtres

  5. 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:

      - pancarte

  6. Définir l'étape de construction

    emplois:

      consistent à

         – scène : signe

  7. Le nom du travail

    nom : fichier de signature
  8. Le système d'exploitation sur lequel exécuter la tâche

    os: fenêtres
  9. Langue actuelle pour exécuter des travaux sur Travis CI

    langue : c
  10. Écrire le script Avant à exécuter avant de créer le projet

    avant_script :

        – powershell.exe -ExecutionPolicy Bypass -Command 'New-Item -ItemType Directory -Force -Path C:Userstravisbuildesigner-échantilloneSignerCKASSLcom'

  11. Écrivez le script pour construire le projet.

    script:

    # Téléchargez et décompressez la configuration eSignerCKA

    – powershell.exe -ExecutionPolicy Bypass -Command 'Invoke-WebRequest -OutFile eSigner_CKA_1.0.3.zip "https://www.ssl.com/download/ssl-com-esigner-cka-1-0-3"'

    – powershell.exe -ExecutionPolicy Bypass -Command 'Expand-Archive -Force eSigner_CKA_1.0.3.zip'

    – powershell.exe -ExecutionPolicy Bypass -Command 'Remove-Item eSigner_CKA_1.0.3.zip'

    – powershell.exe -ExecutionPolicy Bypass -Command 'Move-Item -Destination « eSigner_CKA_1.0.3.exe » -Chemin « eSigner_CKA_1.0.3SSL.COM eSigner CKA_1.0.3.exe »'


    # Configurer eSignerCKA en mode silencieux

    – powershell.exe -ExecutionPolicy Bypass -Command './eSigner_CKA_1.0.3.exe /CURRENTUSER /VERYSILENT /SUPPRESSMSGBOXES /DIR=”C:Userstravisbuildesigner-échantilloneSignerCKASSLcom” | Hors-Nul'


    # Vérifier le répertoire d'installation

    – powershell.exe -ExecutionPolicy Bypass -Command 'dir C: Userstravisbuildesigner-échantilloneSignerCKASSLcom'


    # Configurer les informations de compte sur eSignerCKA

    – powershell.exe -ExecutionPolicy Bypass -Command 'C: Userstravisbuildesigner-échantilloneSignerCKASSLcomeSignerCKATool.exe config -mode ${MODE} -user « ${USERNAME} »

       -pass "${PASSWORD}" -totp "${TOTP_SECRET}" -key "C:Userstravisbuildesigner-échantilloneSignerCKASSLcommaster.key” -r'


    # Décharger le certificat dans le Windows Store

    – powershell.exe -ExecutionPolicy Bypass -Command 'C: Userstravisbuildesigner-échantillonDéchargement de eSignerCKASSLcomeSignerCKATool.exe'


    # Charger le certificat dans le Windows Store

    – powershell.exe -ExecutionPolicy Bypass -Command 'C: Userstravisbuildesigner-échantillonChargement d'eSignerCKASSLcomeSignerCKATool.exe'


    # Sélectionnez le certificat dans le Windows Store

    – powershell.exe -ExecutionPolicy Bypass -Command '$CodeSigningCert = Get-ChildItem Cert:CurrentUserMy -CodeSigningCert | Sélectionner-Objet -Premier 1 ; echo $CodeSigningCert.Thumbprint > .Thumbprint'


    # Empreinte numérique du certificat de débogage

    – powershell.exe -ExecutionPolicy Bypass -Command 'Set-Variable -Name Thumbprint -Value (Get-Content .Thumbprint); echo $Empreinte'


    # Signer un exemple de fichier avec SignTool

    – powershell.exe -ExecutionPolicy Bypass -Command « Set-Variable -Name Thumbprint -Value (Get-Content .Thumbprint) ; 'C:Program Files (x86)Windows Kits10binx64signtool.exe sign /debug /fd sha256 /tr http://ts.ssl.com /td sha256 /sha1 $Thumbprint HelloWorld.dll'"

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.

Quitter la version mobile