Webbplatsikon SSL.com

Hur man integrerar eSigner CKA med CI/CD-verktyg för automatisk kodsignering

De två tabellerna nedan visar hur man integrerar eSigner CKA med Verktyg för kontinuerlig integration/kontinuerlig leverans (CI/CD). för automatisk kodsignering. Guider för CircleCI, GitHub Actions, Gitlab CI och Travis CI tillhandahålls för signering .NET-filer. Guider för Azure Pipeline, GitHub Actions, Gitlab CI och Travis CI tillhandahålls för signering .vsix-filer.

eSigner CKA (Cloud Key Adapter) är en Windows-baserad applikation som använder CNG-gränssnittet (KSP Key Service Provider) för att tillåta verktyg som certutil.exe och signtool.exe att använda eSigner Cloud Signature Consortium (CSC)-kompatibelt API  för företagskodsignering. Tre förutsättningar måste uppfyllas för att kunna utföra eSigner-baserad kodsignering på CI/CD-verktyg:

SSL.com s EV Kodsignering certifikat hjälper till att skydda din kod från obehörig manipulering och kompromissa med den högsta nivån av validering, och är tillgängliga för så lite som $ 249 per år. Du kan också använd ditt EV Code Signing-certifikat i stor skala i molnet med eSigner.

BESTÄLL NU

.vsix Signeringsexempel på arbetsflöden

Miljövariabler
För exempelkoder kan du se SSL.com Github repository på: https://github.com/SSLcom/esigner-sample

.NET-kod DLL Signering av exempel på arbetsflöden

CircleCI-integrationGitHub Actions IntegrationGitlab CI-integrationTravis CI-integration

.NET-kod DLL-signeringsexempel arbetsflöde

Förbered komponenterna i arbetsflödet

  1. Skapa en .circleci-mapp i din editor. Inkludera arbetsflöden med mappen och skapa en yml-fil som config.yml under mappen.
  2. Ställ in CircleCI-versionen. Versionsfältet är avsett att användas för att utfärda varningar för utfasning eller avbrytande ändringar.

    version: 2.1

  3. Orbs är återanvändbara paket med CircleCI-konfiguration som du kan dela mellan projekt, vilket gör att du kan skapa inkapslade, parametriserade kommandon, jobb och exekverare som kan användas i flera projekt. För att använda signtool-verktyget måste detta vara fönster.

    klot:

       vinna: circleci/windows@5.0.0

  4. Anropa jobb via arbetsflöden. Arbetsflöden orkestrerar en uppsättning jobb som ska köras. 

    arbetsflöden:

       # Namnet på arbetsflödet.

       sign-fil:

          # Inuti arbetsflödet definierar du de jobb du vill köra.

             jobb:

                – sign-fil

  5. Definiera ett jobb som ska anropas senare i ett arbetsflöde.

    jobb:

       sign-fil:

  6. Ange exekveringsmiljön. Vi måste använda Windows executer eftersom signtool behövs.

    testamentsexekutor:

       namn: win/server-2019

       storlek: medium

       variant: vs 2019

  7. Placera arbetskatalogen för jobbet 

    arbetskatalog: /home/circleci/project

  8. Lägg till steg i jobbet Se: https://circleci.com/docs/2.0/configuration-reference/#steps  

    steg:

  9. Kolla in källkoden så att arbetsflödet kan komma åt den.

    - kolla upp

  10. Ladda ner och packa upp eSignerCKA Setup

    - springa:

          namn: Ladda ner och packa upp eSignerCKA Setup

          kommando: |

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

             Expandera-Arkiv -Force eSigner_CKA_1.0.3.zip

             Remove-Item eSigner_CKA_1.0.3.zip

             Flytta objekt -Destination "eSigner_CKA_1.0.3.exe" -Sökväg "eSigner_CKA_1.0.3SSL.COM eSigner CKA_1.0.3.exe"

  11. Installera eSignerCKA

    - springa:

          namn: Ställ in eSignerCKA i tyst läge

          kommando: |

                mkdir -p “/home/circleci/project/eSignerCKA”

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

  12. Ställ in SSLcom-kontoinformation på eSignerCKA

    - springa:

          namn: Config Kontoinformation på eSignerCKA

          kommando: |

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

  13. Ladda ur och ladda certifikat till Windows certifikatarkiv

    - springa:

          namn: Ladda certifikat i Windows Store

          kommando: |

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

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

  14. Välj kodsigneringscertifikat och få tumavtryck för signering och Signera artefakt med signtool

    - springa:

          namn: Välj certifikat från Windows Store och signera exempelfil med SignTool

          kommando: |

                $CodeSigningCert = Get-ChildItem Cert:CurrentUserMy -CodeSigningCert | Välj-objekt -Först 1

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

.NET-kod DLL-signeringsexempel arbetsflöde

Förbered komponenterna i arbetsflödet

  1. Skapa en .github/workflows-mapp i din editor. Inkludera arbetsflöden med mappen och skapa en sign.yml-fil under mappen.
  2. Namnge ditt projekt och vilken typ av arbetsflöde som ingår 

    Namn: Sign Artifact

  3. Utlösa detta arbetsflöde på en push 

    på: tryck

  4. Skapa en miljövariabel

    env:

     MASTER_KEY: master.key

     SIGNABLE_FILE_PATH: HelloWorld.dll

     INSTALL_DIR: C:UsersrunneradmineSignerCKA

     MASTER_KEY_FILE: C:UsersrunneradmineSignerCKAmaster.key

  5. Definiera jobben på din editor

    jobb:

     sign-fil:

  6. Kör jobb på Windows Runnerkörs-på: windows-senaste

  7. Skapa ett namn. När arbetsflödet körs är detta namnet som loggas.

    namn: Signera DLL-fil med eSignerCKA

Beskriv stegen för Sign-jobbet

  1. Kolla in källkoden så att arbetsflödet kan komma åt den.

    – namn: Checkout Repository

       använder: actions/checkout@v3

  2. Ladda ner och packa upp eSignerCKA Setup

    – namn: Ladda ner och packa upp eSignerCKA Setup

      kör: |

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

          Expandera-Arkiv -Force eSigner_CKA_1.0.3.zip

          Remove-Item eSigner_CKA_1.0.3.zip

          Flytta objekt -Destination "eSigner_CKA_1.0.3.exe" -Sökväg "eSigner_CKA_1.0.3SSL.COM eSigner CKA_1.0.3.exe"
  3. Installera eSignerCKA

    – namn: Ställ in eSignerCKA i tyst läge

      kör: |

          New-Item -ItemType Directory -Force -Path ${{ env.INSTALL_DIR }}

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

  4. Ställ in SSL.com-kontoinformation på eSignerCKA

    – namn: Config Account Information på eSignerCKA

      kör: |

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

         -passa "${{ secrets.PASSWORD }}" -totp "${{ secrets.TOTP_SECRET }}" -nyckel "${{ env.MASTER_KEY_FILE }}" -r

  5. Ladda ur och ladda certifikat till Windows certifikatarkiv

    – namn: Ladda certifikat i Windows Store

      kör: |

          ${{ env.INSTALL_DIR }}/eSignerCKATool.exe avlastning

          ${{ env.INSTALL_DIR }}/eSignerCKATool.exe laddas
  6. Välj kodsigneringscertifikat och få tumavtryck för signering

    – namn: Välj certifikat från Windows Store

      kör: |

          $CodeSigningCert = Get-ChildItem Cert:CurrentUserMy -CodeSigningCert | Välj-objekt -Först 1

          echo “THUMBPRINT=$($CodeSigningCert.Thumbprint)” >> $env:GITHUB_ENV
  7. Sign artefakt med signtool

    – namn: Signera provfil med SignTool

      kör: |

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

.NET-kod DLL-signeringsexempel arbetsflöde

Definiera komponenterna i arbetsflödet

  1. Cskriv en yml-fil som .gitlab-ci.yml under mappen.
  2. Används för att välja löpare från listan över tillgängliga löpare. En löpare måste ha alla taggar listade här för att köra jobbet.

    .windows_runners:

          Taggar:

                – delade fönster

                – fönster

                – windows-1809

  3. Grupperar jobb i etapper. Alla jobb i ett steg måste slutföras innan nästa steg kan utföras.

    steg:

          - tecken

  4. Nedan är definitionen av ditt jobb att signera fil. Definiera i vilket stadium jobbet ska köras.

    sign-fil:

         scen: tecken

  5. Namnet på ett eller flera jobb att ärva konfigurationen från.

    förlänger:

         – .windows_runners
  6. Skriv skriptet för att signera filen.

    manus:

    # Ladda ner och packa upp eSignerCKA Setup

       – powershell.exe -ExecutionPolicy Bypass -Kommando '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 -Kommando 'Expand-Archive -Force eSigner_CKA_1.0.3.zip'

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

       – powershell.exe -ExecutionPolicy Bypass -Kommando 'Move-Item -Destination "eSigner_CKA_1.0.3.exe" -Sökväg "eSigner_CKA_1.0.3SSL.COM eSigner CKA_1.0.3.exe"'


    # Ställ in eSignerCKA i tyst läge

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


    # Kontrollera installationskatalogen

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


    # Konfigurera kontoinformation på eSignerCKA

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

         -användare "${USERNAME}" -passera "${PASSWORD}" -totp "${TOTP_SECRET}" -nyckel "C:Usersgitlab_runnerAppDataRoamgeSignerCKAmaster.key" -r'


    # Ladda ur certifikat till Windows Store

    – powershell.exe -ExecutionPolicy Bypass -Kommando 'C:Usersgitlab_runnerDesktopeSignerCKAeSignerCKATool.exe unload'


    # Ladda certifikat i Windows Store

    – powershell.exe -ExecutionPolicy Bypass -Kommando 'C:Usersgitlab_runnerDesktopeSignerCKAeSignerCKATool.exe load'


       # Kontrollera datakatalogen

       – powershell.exe -ExecutionPolicy Bypass -Kommando 'dir C:Usersgitlab_runnerAppDataRoamgeSignerCKA'


       # Kontrollera konfigurationsdatakatalogen

       – powershell.exe -ExecutionPolicy Bypass -Kommando 'dir C:Usersgitlab_runnerAppDataRoamgeSignerCKAConfig'


    # Välj certifikat från Windows Store

    – powershell.exe -ExecutionPolicy Bypass -Kommando '$CodeSigningCert = Get-ChildItem Cert:CurrentUserMy -CodeSigningCert | Välj-Objekt -Första 1; echo $CodeSigningCert.Thumbprint > .Thumbprint'

    # Debug Certificate Thumbprint

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


    # Signera provfil med SignTool

    – powershell.exe -ExecutionPolicy Bypass -Kommando "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'”

.NET-kod DLL-signeringsexempel arbetsflöde

Definiera komponenterna i arbetsflödet

  1. Skapa en yml-fil som .travis.yml under rotmappen.
  2. Placera CPU-arkitekturen för att köra jobbet på.

    båge: amd64

  3. Standardspråk för att köra jobb på Travis CI

    språk: csharp

  4. Operativsystemet att köra jobbet på

    OS: Windows

  5. Ange ordningen på stegen. Alla jobb i ett steg måste slutföras innan nästa steg utförs.

    steg:

      - tecken

  6. Definiera byggstadiet

    jobb:

      innefattar:

         – scen: tecken

  7. Jobbets namn

    namn: sign-fil
  8. Operativsystemet att köra jobbet på

    OS: Windows
  9. Aktuellt språk för att köra jobb på Travis CI

    språk: c
  10. Skriv före-skriptet som ska köras innan du bygger projektet

    före_skript:

        – powershell.exe -ExecutionPolicy Bypass -Kommando 'New-Item -ItemType Directory -Force -Path C:Userstravisbuildesigner-proveSignerCKASSLcom'

  11. Skriv manuset för att bygga projektet.

    manus:

    # Ladda ner och packa upp eSignerCKA Setup

    – powershell.exe -ExecutionPolicy Bypass -Kommando '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 -Kommando 'Expand-Archive -Force eSigner_CKA_1.0.3.zip'

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

    – powershell.exe -ExecutionPolicy Bypass -Kommando 'Move-Item -Destination "eSigner_CKA_1.0.3.exe" -Sökväg "eSigner_CKA_1.0.3SSL.COM eSigner CKA_1.0.3.exe"'


    # Ställ in eSignerCKA i tyst läge

    – powershell.exe -ExecutionPolicy Bypass -Kommando './eSigner_CKA_1.0.3.exe /CURRENTUSER /VERYSILENT /SUPPRESSMSGBOXES /DIR=”C:Userstravisbuildesigner-proveSignerCKASSLcom” | Out-Null'


    # Kontrollera installationskatalogen

    – powershell.exe -ExecutionPolicy Bypass -Kommando 'dir C:Userstravisbuildesigner-proveSignerCKASSLcom'


    # Konfigurera kontoinformation på eSignerCKA

    – powershell.exe -ExecutionPolicy Bypass -Kommando 'C:Userstravisbuildesigner-proveSignerCKASSLcomeSignerCKATool.exe config -mode ${MODE} -användare "${USERNAME}"

       -passa "${PASSWORD}" -totp "${TOTP_SECRET}" -nyckel "C:Userstravisbuildesigner-proveSignerCKASSLcommaster.key” -r'


    # Ladda ur certifikat till Windows Store

    – powershell.exe -ExecutionPolicy Bypass -Kommando 'C:Userstravisbuildesigner-proveSignerCKASSLcomeSignerCKATool.exe unload'


    # Ladda certifikat i Windows Store

    – powershell.exe -ExecutionPolicy Bypass -Kommando 'C:Userstravisbuildesigner-proveSignerCKASSLcomeSignerCKATool.exe ladda'


    # Välj certifikat från Windows Store

    – powershell.exe -ExecutionPolicy Bypass -Kommando '$CodeSigningCert = Get-ChildItem Cert:CurrentUserMy -CodeSigningCert | Välj-Objekt -Första 1; echo $CodeSigningCert.Thumbprint > .Thumbprint'


    # Debug Certificate Thumbprint

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


    # Signera provfil med SignTool

    – powershell.exe -ExecutionPolicy Bypass -Kommando "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'”

Behöver du anpassade lösningar? 

Med vår expertkunskap och femstjärniga supportpersonal är vi redo och villiga att arbeta med dig på skräddarsydda lösningar eller rabatter på stora volymer av signering på företagsnivå. Fyll i formuläret nedan så hör vi av oss.

Avsluta mobilversionen