Cloud Code Signing-integration med GitLab CI

Dette er en vejledning i, hvordan man laver automatiseret kodesignering på GitLab CI ved hjælp af eSigner CodeSignTool. 

CodeSignTool er et sikkert kommandolinjeværktøj, der er en del af eSigner: vores cloud-kodesigneringsmiljø, der gavner softwareudgivere og -udviklere med dets kapacitet til sikkert og effektivt at udføre virksomhedskodesignering på en ikke-kompliceret måde.  Eksempel-workflowet nedenfor viser en .NET DLL-kode, der signeres på GitLab CI med eSigner.

SSL.com s EV Kodesignering certifikater hjælper med at beskytte din kode mod uautoriseret manipulation og gå på kompromis med det højeste niveau af validering og er tilgængelige for så lidt som $ 249 pr. Du kan også brug dit EV Code Signing-certifikat i stor skala i skyen ved hjælp af eSigner.

BESTIL NU

Miljøvariabler

  • USERNAME: SSL.com konto brugernavn. (Påkrævet)
  • PASSWORD: SSL.com kontoadgangskode (påkrævet)
  • CREDENTIAL_ID: Legitimations-id til signering af certifikat. Hvis credential_id er udeladt, og brugeren kun har ét eSigner-kodesigneringscertifikat, vil CodeSignTool som standard være det. Hvis brugeren har mere end ét kodesigneringscertifikat, er denne parameter obligatorisk. (Påkrævet)
  • TOTP_SECRET: OAuth TOTP-hemmelighed. Du kan få adgang til detaljerede oplysninger om https://www.ssl.com/how-to/automate-esigner-ev-code-signing (Påkrævet)
  • ENVIRONMENT_NAME : 'TEST' eller 'PROD' miljø. (Påkrævet)

Indgange

  • input_file_path: Sti til kodeobjekt, der skal signeres. (Påkrævet)
  • output_dir_path: Bibliotek, hvor signeret kodeobjekt(er) vil blive skrevet. Hvis output_path er udeladt, vil filen specificeret i -file_path blive overskrevet med den signerede fil.

.NET Code DLL Signing Eksempel Workflow

Opret en yml-fil

Gruppér job i etaper. Alle opgaver i én fase skal afsluttes, før den næste fase udføres.

stadier: - bygge - tegn
 

Definer miljøvariabler globalt. Jobniveauegenskab tilsidesætter globale variabler.

  • Miljøvariabler bruges til at gøre prøverne mere læsbare. I skærmbilledet ovenfor af eksempelarbejdsgangen blev PROJECT_NAME, PROJECT_VERSION og DOTNET_VERSION eventuelt udeladt. Underskrift kan stadig fortsætte med disse udeladelser.  
  • Under ENVIRONMENT_NAME skal du placere "TEST" for testsignering og "PROD" for livesignering.
variabler: PROJECT_NAME: "HelloWorld" PROJECT_VERSION: "0.0.1" DOTNET_VERSION: "3.1" ENVIRONMENT_NAME: "PROD"
 

Definer Byggestadie

Nedenfor er definitionen af ​​dit job med at bygge dll-artefakter

build-dotnet:

 

  1. Definer, hvilket stadium jobbet skal køre i.
  etape: bygge

 

  1. Indsæt det fulde navn på det billede, der skal bruges. Den skal indeholde registreringsdelen, hvis det er nødvendigt.
 billede: mcr.microsoft.com/dotnet/sdk:3.1-bullseye

 

  1. Definer scripts, der skal køre *før* jobbet. Kan indstilles globalt eller pr. job.
før_script: - mkdir -p ${CI_PROJECT_DIR}/artifacts - mkdir -p ${CI_PROJECT_DIR}/pakker

 

  1. Definer Shell-scripts, der udføres af Runner. Byg DLL-artefakt
script: - dotnet build dotnet/${PROJECT_NAME}.csproj -c Release - cp dotnet/bin/Release/netcoreapp${DOTNET_VERSION}/${PROJECT_NAME}-${PROJECT_VERSION}.dll ${CI_PROJECT_DIR}/packages/${ PROJECT_NAME}.dll

 

  1. Angiv en liste over filer og mapper, der skal knyttes til jobbet, hvis det lykkes.
  • Den "udløber_om' egenskaben tillader, at filen slettes efter et vist tidsrum. Dens brug er valgfri. Dette er grunden til, at skærmbilledet af eksemplet på arbejdsgangen ovenfor ikke viser denne egenskab.
artefakter: stier: - ${CI_PROJECT_DIR}/packages/HelloWorld.dll expire_in: 5 minutter
 

Definer skiltstadiet

Nedenfor er definitionen af ​​dit job til at signere dll-artefakt

tegn-dotnet-artefakter:

 

  1. Definer, hvilket stadium jobbet skal køre i.
  etape: tegn

 

  1. Indsæt det fulde navn på det billede, der skal bruges. Den skal indeholde registreringsdelen, hvis det er nødvendigt.
 billede: docker:19.03.0

 

  1. Definer tjenester. Dette svarer til egenskaben `image`, men vil linke de angivne tjenester til `image`-beholderen.
tjenester: - havnemand:19.03.0-dind

 

  1. Definer miljøvariabler for specifikke job.
  • I skærmbilledet ovenfor blev sign-kommandoen defineret direkte i sign-scriptet og ikke under miljøvariabler. Bandre metoder kan signere korrekt med TravisCI.
  variabler: COMMAND: "tegn"

 

  1. Definer scripts, der skal køre *før* jobbet. Kan indstilles globalt eller pr. job.
  før_script: - mkdir -p ${CI_PROJECT_DIR}/artifacts - mkdir -p ${CI_PROJECT_DIR}/pakker

 

  1. Placer Shell-scripts udført af Runner. Signer .NET dll-artefakt med CodeSignTool Docker Image
script: - docker pull ghcr.io/sslcom/codesigner:latest - docker run -i --rm --dns 8.8.8.8 --netværksvært --volumen ${CI_PROJECT_DIR}/packages:/codesign/examples --volume $ {CI_PROJECT_DIR}/artifacts:/codesign/output -e BRUGERNAVN=${USERNAME} -e PASSWORD=${PASSWORD} -e CREDENTIAL_ID=${CREDENTIAL_ID} -e TOTP_SECRET=${TOTP_SECRET} -e ENVIRONMENT_NAME=${ENVIRONMENT_NAME=NAME} ghcr.io/sslcom/codesigner:latest ${COMMAND} -input_file_path=/codesign/examples/${PROJECT_NAME}.dll -output_dir_path=/codesign/output

 

  1. Skriv det script, der kan bruges til at angive en liste over filer og mapper, der skal knyttes til jobbet, hvis det lykkes.
artefakter: stier: - ${CI_PROJECT_DIR}/artifacts/${PROJECT_NAME}.dll udløber_om: 1 dage

 

  1. Angiv en liste over jobnavne fra tidligere stadier, hvorfra artefakter skal indlæses.
afhængigheder: - build-dotnet

SSL.com s EV Kodesignering certifikater hjælper med at beskytte din kode mod uautoriseret manipulation og gå på kompromis med det højeste niveau af validering og er tilgængelige for så lidt som $ 249 pr. Du kan også brug dit EV Code Signing-certifikat i stor skala i skyen ved hjælp af eSigner.

BESTIL NU

Start byggefasen

Opret et lager

Se kommandolinjeinstruktionerne på Gitlab som vist på skærmbilledet nedenfor

Skub din mappe

Gør dette ved at klikke terminal på menuen efterfulgt af Ny terminal.

Indtast push-scriptet på din terminal for at skubbe projektet 

Klik på knappen Byg

Efter at have udløst rørledningen, fortsæt med at bygge

Tjek, om opbygningen er vellykket  

Start Sign Stage

Fortsæt med at underskrive artefakten

Bekræft, om kodesigneringen er vellykket

Du kan nu downloade den signerede fil

Du kan henvise til SSL.com Github repository, som indeholder kildekoderne til docker-billedet og beskriver, hvordan man bruger det: https://github.com/SSLcom/ci-images 

Prøve Gitlab CI Pipeline

Tjek prøven af ​​Gitlab CI-pipeline, vi har oprettet på github.com/SSLcom/codesigner-gitlabci-sample

Andre CI/CD Remote Signing Integration Guides

Brug for tilpassede løsninger? 

Med vores ekspertviden og femstjernede supportmedarbejdere er vi klar til og villige til at arbejde sammen med dig om skræddersyede løsninger eller store signeringsrabatter på virksomhedsniveau. Udfyld formularen nedenfor, så kontakter vi dig.

Hold dig informeret og sikker

SSL.com er en global leder inden for cybersikkerhed, PKI og digitale certifikater. Tilmeld dig for at modtage de seneste industrinyheder, tips og produktmeddelelser fra SSL.com.

Vi vil meget gerne have din feedback

Tag vores undersøgelse og fortæl os dine tanker om dit seneste køb.