Nettstedsikon SSL.com

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

De to tabellene nedenfor viser hvordan du integrerer eSigner CKA med Verktøy for kontinuerlig integrasjon/kontinuerlig levering (CI/CD). forum automatisert kodesignering. Veiledninger for CircleCI, GitHub Actions, Gitlab CI og Travis CI er gitt for signering .NET-filer. Veiledninger for Azure Pipeline, GitHub Actions, Gitlab CI og Travis CI er gitt for signering .vsix-filer.

eSigner CKA (Cloud Key Adapter) er en Windows-basert applikasjon som bruker CNG-grensesnittet (KSP Key Service Provider) for å tillate verktøy som certutil.exe og signtool.exe å bruke eSigner Cloud Signature Consortium (CSC)-kompatibel API  for virksomhetskodesigneringsoperasjoner. Tre forutsetninger må være oppfylt før man kan utføre eSigner-basert kodesignering på CI/CD-verktøy:

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://www.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 Kits10App Certification Kitsigntool.exe' tegn /debug /fd sha256 /tr http://ts.ssl.com /td sha256 /sha1 “$($CodeSigningCert.Thumbprint)” “HelloWorld. dll"

.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 Runnerkjø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://www.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/bin/10.0.17763.0/x86/signtool.exe' tegn /debug /fd sha256 /tr http://ts.ssl.com /td sha256 /sha1 ${{ env.THUMBPRINT }} ${{ env.SIGNABLE_FILE_PATH }}

.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 -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" -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'"

.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 -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" -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'”

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