Cloud Code Signing-integrasjon med GitLab CI

Dette er en veiledning om hvordan du gjør automatisert kodesignering på GitLab CI ved hjelp av eSigner CodeSignTool. 

CodeSignTool er et sikkert kommandolinjeverktøy som utgjør en del av eSigner: vårt skykodesigneringsmiljø som er til fordel for programvareutgivere og utviklere med sin kapasitet til å trygt og effektivt utføre bedriftskodesignering på en ikke-komplisert måte.  Eksempelarbeidsflyten nedenfor viser en .NET DLL-kode som signeres på GitLab CI med eSigner.

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Å

Miljøvariabler

  • USERNAME: SSL.com-konto brukernavn. (Obligatorisk)
  • PASSORD: SSL.com-kontopassord (påkrevd)
  • CREDENTIAL_ID: Legitimasjons-ID for signering av sertifikat. Hvis credential_id er utelatt og brukeren bare har ett eSigner-kodesigneringssertifikat, vil CodeSignTool som standard bruke det. Hvis brukeren har mer enn ett kodesigneringssertifikat, er denne parameteren obligatorisk. (Obligatorisk)
  • TOTP_SECRET: OAuth TOTP-hemmelighet. Du kan få tilgang til detaljert informasjon om https://www.ssl.com/how-to/automate-esigner-ev-code-signing (Nødvendig)
  • ENVIRONMENT_NAME : 'TEST' eller 'PROD' miljø. (Obligatorisk)

Innganger

  • input_file_path: Banen til kodeobjektet som skal signeres. (Obligatorisk)
  • output_dir_path: Katalog hvor signert kodeobjekt(er) vil bli skrevet. Hvis output_path er utelatt, vil filen spesifisert i -file_path bli overskrevet med den signerte filen.

.NET-kode DLL-signeringseksempel arbeidsflyt

Lag en yml-fil

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

stadier: - bygge - tegn
 

Definer miljøvariabler globalt. Jobbnivåegenskap overstyrer globale variabler.

  • Miljøvariabler brukes for å gjøre prøvene mer lesbare. I skjermbildet ovenfor av eksempelarbeidsflyten ble PROJECT_NAME, PROJECT_VERSION og DOTNET_VERSION eventuelt utelatt. Signering kan fortsatt fortsette med disse utelatelsene.  
  • Under ENVIRONMENT_NAME plasserer du «TEST» for testsignering og «PROD» for direktesignering.
variabler: PROJECT_NAME: "HelloWorld" PROJECT_VERSION: "0.0.1" DOTNET_VERSION: "3.1" ENVIRONMENT_NAME: "PROD"
 

Definer Byggescenen

Nedenfor er definisjonen av jobben din med å bygge dll-artefakt

build-dotnet:

 

  1. Definer hvilket stadium jobben skal kjøre i.
  trinn: bygge

 

  1. Sett inn hele navnet på bildet som skal brukes. Den bør inneholde registerdelen om nødvendig.
 bilde: mcr.microsoft.com/dotnet/sdk:3.1-bullseye

 

  1. Definer skript som skal kjøres *før* jobben. Kan settes globalt eller per jobb.
før_skript: - mkdir -p ${CI_PROJECT_DIR}/artifacts - mkdir -p ${CI_PROJECT_DIR}/pakker

 

  1. Definer Shell-skript utført av Runner. 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. Angi en liste over filer og kataloger som skal knyttes til jobben hvis den lykkes.
  • The 'expire_in'-egenskapen lar filen slettes etter en viss tidsperiode. Bruken er valgfri. Dette er grunnen til at skjermbildet av eksempelarbeidsflyten ovenfor ikke viser denne egenskapen.
artefakter: baner: - ${CI_PROJECT_DIR}/packages/HelloWorld.dll expire_in: 5 minutter
 

Definer skiltstadiet

Nedenfor er definisjonen av jobben din med å signere dll-artefakt

sign-dotnet-artefakter:

 

  1. Definer hvilket stadium jobben skal kjøre i.
  trinn: tegn

 

  1. Sett inn hele navnet på bildet som skal brukes. Den bør inneholde registerdelen om nødvendig.
 bilde: docker:19.03.0

 

  1. Definer tjenester. Dette ligner på `image`-egenskapen, men vil koble de spesifiserte tjenestene til `image`-beholderen.
tjenester: - docker:19.03.0-dind

 

  1. Definer miljøvariabler for spesifikke jobber.
  • I skjermbildet ovenfor ble skiltkommandoen definert direkte i skiltskriptet og ikke under miljøvariabler. Bandre metoder kan signere riktig med TravisCI.
  variabler: COMMAND: "sign"

 

  1. Definer skript som skal kjøres *før* jobben. Kan settes globalt eller per jobb.
  før_skript: - mkdir -p ${CI_PROJECT_DIR}/artifacts - mkdir -p ${CI_PROJECT_DIR}/pakker

 

  1. Plasser Shell-skript utført av 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 --nettverksvert --volume ${CI_PROJECT_DIR}/packages:/codesign/examples --volume $ {CI_PROJECT_DIR}/artifacts:/codesign/output -e USERNAME=${USERNAME} -e PASSWORD=${PASSWORD} -e CREDENTIAL_ID=${CREDENTIAL_ID} -e TOTP_SECRET=${TOTP_SECRET} -e MILJØNAVN=${ENVIRONMENT_NAME={ENVIRONMENT_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 brukes til å spesifisere en liste over filer og kataloger som skal knyttes til jobben hvis den lykkes.
artefakter: baner: - ${CI_PROJECT_DIR}/artifacts/${PROJECT_NAME}.dll expire_in: 1 dager

 

  1. Spesifiser en liste over jobbnavn fra tidligere stadier som artefakter skal lastes fra.
avhengigheter: - build-dotnet

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Å

Start byggefasen

Opprett et depot

Se kommandolinjeinstruksjonene på Gitlab som vist på skjermbildet nedenfor

Skyv mappen din

Gjør dette ved å klikke terminal på menyen, etterfulgt av Ny terminal.

Skriv inn push-skriptet på terminalen for å pushe prosjektet 

Klikk på Bygg-knappen

Etter å ha utløst rørledningen, fortsett å bygge

Sjekk om byggingen er vellykket  

Start skiltstadiet

Fortsett med å signere artefakten

Bekreft om kodesigneringen er vellykket

Du kan nå laste ned den signerte filen

Du kan referere til SSL.com Github-depot som inneholder kildekodene til docker-bildet og beskriver hvordan du bruker det: https://github.com/SSLcom/ci-images 

Prøv Gitlab CI Pipeline

Sjekk ut prøven Gitlab CI-pipeline vi har laget på github.com/SSLcom/codesigner-gitlabci-sample

Andre veiledninger for integrasjon av CI/CD-fjernsignering

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.

Abonner på SSL.coms nyhetsbrev

Ikke gå glipp av nye artikler og oppdateringer fra SSL.com

Hold deg informert og sikker

SSL.com er en global leder innen cybersikkerhet, PKI og digitale sertifikater. Registrer deg for å motta de siste bransjenyhetene, tipsene og produktkunngjøringene fra SSL.com.

Vi vil gjerne ha tilbakemeldinger

Ta vår spørreundersøkelse og fortell oss dine tanker om ditt nylige kjøp.