Nettstedsikon SSL.com

Hvordan integrere eSigner CKA med CI/CD-verktøy for automatisert kodesignering

Avsnittene nedenfor viser hvordan du integrerer eSigner CKA med verktøy for kontinuerlig integrering/kontinuerlig levering (CI/CD) for automatisert kodesigneringVeiledninger for CircleCI, GitHub Actions, Gitlab CI og Travis CI er tilgjengelige for signering av .NET-filer. Veiledninger for Azure Pipeline, GitHub Actions, Gitlab CI og Travis CI er tilgjengelige for signering av .vsix-filer. eSigner CKA (Cloud Key Adapter) er et Windows-basert program som bruker CNG-grensesnittet (KSP Key Service Provider) for å tillate verktøy som certutil.exe og signtool.exe å bruke eSigner Cloud Signature Consortium (CSC)-kompatibelt API for kodesigneringsoperasjoner i bedrifter. Før du aktiverer skybasert kodesignering for eSigner i CI/CD-pipelinen din, må du sørge for at følgende sjekklistepunkter er fullført: Når alle punktene på sjekklisten er fullført, kan du fortsette med å konfigurere CI/CD-plattformen din ved hjelp av den aktuelle integrasjonsveiledningen.

SSL.coms EV Kodesignering sertifikater bidrar til å beskytte koden din mot uautorisert tukling og kompromiss med det høyeste nivået av validering, og er tilgjengelige for så lite som $ 249 per år. Du kan også bruk EV Code Signing-sertifikatet i stor skala i skyen ved hjelp av eSigner.

BESTILL NÅ

.vsix Signeringseksempler på arbeidsflyter

Miljøvariabler
For eksempelkoder kan du se SSL.com Github-depot på: https://github.com/SSLcom/esigner-sample

.NET-kode DLL Signering av eksempler på arbeidsflyter

CircleCI-integrasjonGitHub Actions-integrasjonGitlab CI-integrasjonTravis CI-integrasjon

.NET-kode DLL-signeringseksempel arbeidsflyt

Forbered komponentene i arbeidsflyten

  1. Opprett en .circleci-mappe på editoren. Inkluder arbeidsflyter med mappen og lag en yml-fil som config.yml under mappen.
  2. Still inn CircleCI-versjonen. Versjonsfeltet er ment å brukes for å utstede advarsler for avskrivning eller brudd på endringer.

    versjon: 2.1

  3. Orbs er gjenbrukbare pakker med CircleCI-konfigurasjon som du kan dele på tvers av prosjekter, slik at du kan lage innkapslede, parameteriserte kommandoer, jobber og utførere som kan brukes på tvers av flere prosjekter. For å bruke signtool-verktøyet må dette være vinduer.

    kuler:

       vinn: circleci/windows@5.0.0

  4. Påkalle jobber via arbeidsflyter. Arbeidsflyter orkestrerer et sett med jobber som skal kjøres. 

    arbeidsflyter:

       # Navnet på arbeidsflyten.

       sign-fil:

          # Inne i arbeidsflyten definerer du jobbene du vil kjøre.

             arbeidsplasser:

                – sign-fil

  5. Definer en jobb som skal startes senere i en arbeidsflyt.

    arbeidsplasser:

       sign-fil:

  6. Spesifiser utførelsesmiljøet. Vi må bruke Windows executer fordi signtool er nødvendig.

    eksekutor:

       navn: win/server-2019

       størrelse: medium

       variant: vs 2019

  7. Plasser arbeidskatalogen for jobben 

    arbeidskatalog: /home/circleci/project

  8. Legg til trinn i jobben Se: https://circleci.com/docs/2.0/configuration-reference/#steps  

    trinn:

  9. Sjekk ut kildekoden slik at arbeidsflyten får tilgang til den.

    - Sjekk ut

  10. Last ned og pakk ut eSignerCKA-oppsett

    - løpe:

          navn: Last ned og pakk ut eSignerCKA-oppsett

          kommando: |

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

             Expand-Archive -Force eSigner_CKA_1.0.3.zip

             Remove-Item eSigner_CKA_1.0.3.zip

             Flytt element -Destinasjon "eSigner_CKA_1.0.3.exe" - Bane "eSigner_CKA_1.0.3SSL.COM eSigner CKA_1.0.3.exe"

  11. Installer eSignerCKA

    - løpe:

          navn: Sett opp eSignerCKA i stille modus

          kommando: |

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

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

  12. Angi SSLcom-kontoinformasjon på eSignerCKA

    - løpe:

          navn: Konfigurasjonskontoinformasjon på eSignerCKA

          kommando: |

                /home/circleci/project/eSignerCKA/eSignerCKATool.exe config -modus $env:MODE -bruker "$env:USERNAME" -pass "$env:PASSWORD" -totp "$env:TOTP_SECRET" -nøkkel "/home/circleci /project/eSignerCKA/master.key” -r

  13. Last ned og last inn sertifikat til Windows sertifikatlager

    - løpe:

          navn: Last inn sertifikatet i Windows Store

          kommando: |

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

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

  14. Velg kodesigneringssertifikat og få thumbprint for signering og Signer artefakt med signtool

    - løpe:

          navn: Velg sertifikat fra Windows Store og signer prøvefil med SignTool

          kommando: |

                $CodeSigningCert = Get-ChildItem Cert:CurrentUserMy -CodeSigningCert | Velg-objekt -Først 1

                & 'C:\Program Files (x86)\Windows Kits\10\App Certification Kit\signtool.exe' tegn /debug /fd sha256 /tr http://ts.ssl.com /td sha256 /sha1 “$($ CodeSigningCert.Thumbprint)" "HelloWorld.dll"

Merk: Hvis det oppstår en feil når du bruker x64-versjonen av SignTool, bruk x86-versjonen. For eksempel: C:\Programfiler (x86)\Windows-sett\10\bin\10.0.22621.0\x86\signtool.exe

.NET-kode DLL-signeringseksempel arbeidsflyt

Forbered komponentene i arbeidsflyten

  1. Opprett en .github/workflows-mappe på redigeringsprogrammet. Inkluder arbeidsflyter med mappen og lag en sign.yml-fil under mappen.
  2. Navngi prosjektet og typen arbeidsflyt som er involvert 

    Navn: Sign Artifact

  3. Utløs denne arbeidsflyten på et trykk 

    på: trykk

  4. Lag en miljøvariabel

    env:

     MASTER_KEY: master.key

     SIGNABLE_FILE_PATH: HelloWorld.dll

     INSTALL_DIR: C:UsersrunneradmineSignerCKA

     MASTER_KEY_FILE: C:UsersrunneradmineSignerCKAmaster.key

  5. Definer jobbene på redaktøren din

    arbeidsplasser:

     sign-fil:

  6. Kjør jobb på Windows Runner
    kjører på: windows-nyeste

  7. Lag et navn. Når arbeidsflyten kjører, er dette navnet som logges.

    navn: Signer DLL-fil med eSignerCKA

Skisser fremgangsmåten for Sign-jobben

  1. Sjekk ut kildekoden slik at arbeidsflyten får tilgang til den.

    – navn: Checkout Repository

       bruker: actions/checkout@v3

  2. Last ned og pakk ut eSignerCKA-oppsett

    – navn: Last ned og pakk ut eSignerCKA-oppsett

      løp: |

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

          Expand-Archive -Force eSigner_CKA_1.0.3.zip

          Remove-Item eSigner_CKA_1.0.3.zip

          Flytt element -Destinasjon "eSigner_CKA_1.0.3.exe" - Bane "eSigner_CKA_1.0.3SSL.COM eSigner CKA_1.0.3.exe"
  3. Installer eSignerCKA

    – navn: Sett opp eSignerCKA i stille modus

      løp: |

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

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

  4. Angi SSL.com-kontoinformasjon på eSignerCKA

    – navn: Konfigurasjonskontoinformasjon på eSignerCKA

      løp: |

          ${{ env.INSTALL_DIR }}/eSignerCKATool.exe config -modus "${{ secrets.MODE }}" -bruker "${{ secrets.USERNAME }}"

         -pass "${{ secrets.PASSWORD }}" -totp "${{ secrets.TOTP_SECRET }}" -nøkkel "${{ env.MASTER_KEY_FILE }}" -r

  5. Last ned og last inn sertifikat til Windows sertifikatlager

    – navn: Last inn sertifikatet i Windows Store

      løp: |

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

          ${{ env.INSTALL_DIR }}/eSignerCKATool.exe last
  6. Velg kodesigneringssertifikat og få tommelfingeravtrykk for signering

    – navn: Velg sertifikat fra Windows Store

      løp: |

          $CodeSigningCert = Get-ChildItem Cert:CurrentUserMy -CodeSigningCert | Velg-objekt -Først 1

          echo “THUMBPRINT=$($CodeSigningCert.Thumbprint)” >> $env:GITHUB_ENV
  7. Skilt artefakt med skiltverktøy

    – navn: Signer prøvefil med SignTool

      løp: |

          & 'C:\Program Files (x86)\Windows Kits\10\App Certification Kit\signtool.exe' tegn /debug /fd sha256 /tr http://ts.ssl.com /td sha256 /sha1 ${{ env .THUMBPRINT }} ${{ env.SIGNABLE_FILE_PATH }}
    Merk: Hvis det oppstår en feil når du bruker x64-versjonen av SignTool, bruk x86-versjonen. For eksempel: C:\Programfiler (x86)\Windows-sett\10\bin\10.0.22621.0\x86\signtool.exe
    Du kan også referere til denne eksempelarbeidsflyten for signering: https://github.com/SSLcom/esigner-sample/blob/main/.github/workflows/sign.yml#L37

.NET-kode DLL-signeringseksempel arbeidsflyt

Definer komponentene i arbeidsflyten

  1. Create en yml-fil som .gitlab-ci.yml under mappen.
  2. Brukes til å velge løpere fra listen over tilgjengelige løpere. En løper må ha alle tagger oppført her for å kjøre jobben.

    .windows_runners:

          tags:

                – delte vinduer

                – vinduer

                – windows-1809

  3. Grupperer jobber i etapper. Alle jobber i ett trinn må fullføres før neste trinn utføres.

    stadier:

          – tegn

  4. Nedenfor er definisjonen av jobben din for å signere filen. Definer hvilket stadium jobben skal kjøre i.

    sign-fil:

         trinn: tegn

  5. Navnet på en eller flere jobber å arve konfigurasjonen fra.

    strekker:

         – .windows_runners
  6. Skriv skriptet for å signere filen.

    manus:

    # Last ned og pakk ut eSignerCKA-oppsett

       – powershell.exe -ExecutionPolicy Bypass -Command 'Invoke-WebRequest -OutFile eSigner_CKA_1.0.3.zip “https://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" -Path "eSigner_CKA_1.0.3SSL.COM eSigner CKA_1.0.3.exe"'


    # Sett opp eSignerCKA i stille modus

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


    # Sjekk installasjonskatalogen

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


    # Konfigurer kontoinformasjon på eSignerCKA

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

         -bruker «${USERNAME}» -pass «${PASSWORD}» -totp «${TOTP_SECRET}» -nøkkel «C:Usersgitlab_runnerAppDataRoamgeSignerCKAmaster.key» -r'


    # Last ned sertifikatet i Windows Store

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


    # Last inn sertifikatet i Windows Store

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


       # Sjekk datakatalogen

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


       # Sjekk konfigurasjonsdatakatalogen

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


    # Velg sertifikat fra Windows Store

    – powershell.exe -ExecutionPolicy Bypass -Kommando '$CodeSigningCert = Get-ChildItem Cert:CurrentUserMy -CodeSigningCert | Velg-objekt -Første 1; echo $CodeSigningCert.Thumbprint > .Thumbprint'

    # Debug Certificate Thumbprint

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


    # Signer prøvefil 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'"

Merk: Hvis det oppstår en feil når du bruker x64-versjonen av SignTool, bruk x86-versjonen. For eksempel: C:\Programfiler (x86)\Windows-sett\10\bin\10.0.22621.0\x86\signtool.exe

.NET-kode DLL-signeringseksempel arbeidsflyt

Definer komponentene i arbeidsflyten

  1. Opprett en yml-fil som .travis.yml under rotmappen.
  2. Plasser CPU-arkitekturen for å kjøre jobben på.

    bue: amd64

  3. Standardspråk for å kjøre jobber på Travis CI

    språk: csharp

  4. Operativsystemet å kjøre jobben på

    os: vinduer

  5. Angi rekkefølgen på stadiene. Alle jobber i ett trinn må fullføres før neste trinn utføres.

    stadier:

      – tegn

  6. Definer byggestadiet

    arbeidsplasser:

      inkluderer:

         – scene: tegn

  7. Jobbens navn

    navn: sign-fil
  8. Operativsystemet å kjøre jobben på

    os: vinduer
  9. Nåværende språk for å kjøre jobber på Travis CI

    språk: c
  10. Skriv Før-skriptet som skal kjøres før du bygger prosjektet

    før_skript:

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

  11. Skriv manuset for å bygge prosjektet.

    manus:

    # Last ned og pakk ut eSignerCKA-oppsett

    – powershell.exe -ExecutionPolicy Bypass -Command 'Invoke-WebRequest -OutFile eSigner_CKA_1.0.3.zip “https://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" -Path "eSigner_CKA_1.0.3SSL.COM eSigner CKA_1.0.3.exe"'


    # Sett opp eSignerCKA i stille modus

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


    # Sjekk installasjonskatalogen

    – powershell.exe -ExecutionPolicy Bypass -Command 'dir C:Userstravisbuildesigner-prøveeSignerCKASSLcom'


    # Konfigurer kontoinformasjon på eSignerCKA

    – powershell.exe -ExecutionPolicy Bypass -Kommando 'C:Userstravisbuildesigner-prøveeSignerCKASSLcomeSignerCKATool.exe config -modus ${MODE} -bruker "${USERNAME}"

       -pass "${PASSWORD}" -totp "${TOTP_SECRET}" -nøkkel "C:Userstravisbuildesigner-prøveeSignerCKASSLcommaster.key” -r'


    # Last ned sertifikatet i Windows Store

    – powershell.exe -ExecutionPolicy Bypass -Kommando 'C:Userstravisbuildesigner-prøveeSignerCKASSLcomeSignerCKATool.exe unload'


    # Last inn sertifikatet i Windows Store

    – powershell.exe -ExecutionPolicy Bypass -Kommando 'C:Userstravisbuildesigner-prøveeSignerCKASSLcomeSignerCKATool.exe last'


    # Velg sertifikat fra Windows Store

    – powershell.exe -ExecutionPolicy Bypass -Kommando '$CodeSigningCert = Get-ChildItem Cert:CurrentUserMy -CodeSigningCert | Velg-objekt -Første 1; echo $CodeSigningCert.Thumbprint > .Thumbprint'


    # Debug Certificate Thumbprint

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


    # Signer prøvefil 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'”

Merk: Hvis det oppstår en feil når du bruker x64-versjonen av SignTool, bruk x86-versjonen. For eksempel: C:\Programfiler (x86)\Windows-sett\10\bin\10.0.22621.0\x86\signtool.exe

Beslektede guider

I tillegg til eSigner CKA, eSigner CodeSignTool kan brukes til CI/CD-basert kodesignering. CodeSignTool er et sikkert Java-kommandolinjeverktøy for flere plattformer for ekstern signering av Microsoft Authenticode- og Java-kode ved hjelp av eSigner EV-kodesigneringssertifikater. Kun fil-hasher overføres til SSL.com for signering, noe som sikrer at selve kildekoden aldri sendes – noe som gjør CodeSignTool godt egnet for signering av sensitive filer. Den støtter også automatisert batch-signering og sømløs integrering i CI/CD-arbeidsflyter med høyt volum. Nedenfor finner du spesifikke veiledninger for populære CI/CD-verktøy som bruker eSigner CodeSignTool.

Trenger du tilpassede løsninger? 

Med vår ekspertkunnskap og femstjerners støttepersonell er vi klare og villige til å samarbeide med deg om tilpassede løsninger eller store signeringsrabatter på bedriftsnivå. Fyll ut skjemaet under så tar vi kontakt.

Gå ut av mobilversjonen