Cloud Code Signing-integration med GitLab CI

Det här är en handledning om hur man gör automatiserad kodsignering på GitLab CI med eSigner CodeSignTool. 

CodeSignTool är ett säkert kommandoradsverktyg som ingår i eSigner: vår molnkodssigneringsmiljö som gynnar programvaruutgivare och utvecklare med sin förmåga att säkert och effektivt utföra företagskodsignering på ett okomplicerat sätt.  Exempel på arbetsflödet nedan visar en .NET DLL-kod som signeras på GitLab CI med eSigner.

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

Miljövariabler

  • USERNAME: Användarnamn för SSL.com-konto. (Nödvändig)
  • LÖSENORD: Lösenord för SSL.com-konto (krävs)
  • CREDENTIAL_ID: Autentiserings-ID för signering av certifikat. Om credential_id utelämnas och användaren bara har ett eSigner-kodsigneringscertifikat, kommer CodeSignTool att använda det som standard. Om användaren har mer än ett kodsigneringscertifikat är denna parameter obligatorisk. (Nödvändig)
  • TOTP_SECRET: OAuth TOTP-hemlighet. Du kan komma åt detaljerad information om https://www.ssl.com/how-to/automate-esigner-ev-code-signing (Nödvändig)
  • ENVIRONMENT_NAME : 'TEST' eller 'PROD' miljö. (Nödvändig)

ingångar

  • input_file_path: Sökväg till kodobjekt som ska signeras. (Nödvändig)
  • output_dir_path: Katalog där signerade kodobjekt kommer att skrivas. Om output_path utelämnas kommer filen som anges i -file_path att skrivas över med den signerade filen.

.NET-kod DLL-signeringsexempel arbetsflöde

Skapa en yml-fil

Gruppera jobb i etapper. Alla jobb i ett steg måste slutföras innan nästa steg utförs.

stadier: - bygga - tecken
 

Definiera miljövariabler globalt. Jobbnivåegenskap åsidosätter globala variabler.

  • Miljövariabler används för att göra proverna mer läsbara. I skärmdumpen ovan av exempelarbetsflödet utelämnades eventuellt PROJECT_NAME, PROJECT_VERSION och DOTNET_VERSION. Undertecknandet kan fortfarande fortsätta med dessa utelämnanden.  
  • Under ENVIRONMENT_NAME placerar du "TEST" för testsignering och "PROD" för livesignering.
variabler: PROJECT_NAME: "HelloWorld" PROJECT_VERSION: "0.0.1" DOTNET_VERSION: "3.1" ENVIRONMENT_NAME: "PROD"
 

Definiera Byggscen

Nedan är definitionen av ditt jobb att bygga dll-artefakter

build-dotnet:

 

  1. Definiera i vilket stadium jobbet ska köras.
  skede: bygga

 

  1. Ange det fullständiga namnet på bilden som ska användas. Den bör innehålla registerdelen om det behövs.
 bild: mcr.microsoft.com/dotnet/sdk:3.1-bullseye

 

  1. Definiera skript som ska köras *före* jobbet. Kan ställas in globalt eller per jobb.
före_skript: - mkdir -p ${CI_PROJECT_DIR}/artefakter - mkdir -p ${CI_PROJECT_DIR}/paket

 

  1. Definiera skalskript som körs av löparen. Bygg DLL-artefakt
skript: - 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. Ange en lista över filer och kataloger som ska bifogas jobbet om det lyckas.
  • Den "expire_in' egenskapen tillåter att filen raderas efter en viss tidsperiod. Dess användning är valfri. Det är därför som skärmdumpen av exemplet på arbetsflödet ovan inte visar den här egenskapen.
artefakter: sökvägar: - ${CI_PROJECT_DIR}/packages/HelloWorld.dll expire_in: 5 minuter
 

Definiera skyltstadiet

Nedan är definitionen av ditt jobb att signera dll-artefakt

sign-dotnet-artefakter:

 

  1. Definiera i vilket stadium jobbet ska köras.
  scen: tecken

 

  1. Ange det fullständiga namnet på bilden som ska användas. Den bör innehålla registerdelen om det behövs.
 bild: docker:19.03.0

 

  1. Definiera tjänster. Detta liknar egenskapen `image`, men kommer att länka de angivna tjänsterna till `image`-behållaren.
tjänster: - hamnarbetare:19.03.0-dind

 

  1. Definiera miljövariabler för specifika jobb.
  • I skärmdumpen ovan definierades teckenkommandot direkt i teckenskriptet och inte under miljövariabler. Bandra metoder kan signera korrekt med TravisCI.
  variabler: COMMAND: "tecken"

 

  1. Definiera skript som ska köras *före* jobbet. Kan ställas in globalt eller per jobb.
  före_skript: - mkdir -p ${CI_PROJECT_DIR}/artefakter - mkdir -p ${CI_PROJECT_DIR}/paket

 

  1. Placera Shell-skript som körs av löparen. Signera .NET dll-artefakt med CodeSignTool Docker Image
skript: - docker pull ghcr.io/sslcom/codesigner:latest - docker run -i --rm --dns 8.8.8.8 --nätverksvärd --volym ${CI_PROJECT_DIR}/paket:/codesign/exempel --volym $ {CI_PROJECT_DIR}/artifacts:/codesign/output -e USERNAME=${USERNAME} -e PASSWORD=${PASSWORD} -e CREDENTIAL_ID=${CREDENTIAL_ID} -e TOTP_SECRET=${TOTP_SECRET} -e ENVIRONMENT_NAME=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 skriptet som kan användas för att ange en lista över filer och kataloger som ska bifogas jobbet om det lyckas.
artefakter: sökvägar: - ${CI_PROJECT_DIR}/artifacts/${PROJECT_NAME}.dll expire_in: 1 dagar

 

  1. Ange en lista över jobbnamn från tidigare stadier från vilka artefakter ska laddas.
beroenden: - build-dotnet

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

Initiera byggstadiet

Skapa ett arkiv

Se kommandoradsinstruktionerna på Gitlab som ses i skärmdumpen nedan

Tryck på din mapp

Gör detta genom att klicka terminal på menyn, följt av Ny terminal.

Skriv push-skriptet på din terminal för att driva projektet 

Klicka på knappen Bygg

Efter att ha utlöst rörledningen, fortsätt att bygga

Kontrollera om bygget är framgångsrikt  

Initiera skyltstadiet

Fortsätt för att signera artefakten

Bekräfta om kodsigneringen lyckades

Du kan nu ladda ner den signerade filen

Du kan hänvisa till SSL.com Github repository som innehåller källkoderna för docker-bilden och beskriver hur man använder den: https://github.com/SSLcom/ci-images 

Prov på Gitlab CI Pipeline

Kolla in exempel på Gitlab CI-pipeline vi har skapat på github.com/SSLcom/codesigner-gitlabci-sample

Andra CI/CD-integrationsguider för fjärrsignering

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.

Prenumerera på SSL.coms nyhetsbrev

Missa inte nya artiklar och uppdateringar från SSL.com

Håll dig informerad och säker

SSL.com är en global ledare inom cybersäkerhet, PKI och digitala certifikat. Registrera dig för att få de senaste branschnyheterna, tipsen och produktmeddelanden från SSL.com.

Vi vill gärna ha din feedback

Följ vår undersökning och låt oss veta vad du tycker om ditt senaste köp.