SSL.com

Cloud Code Signing-integrasjon med CircleCI

Denne opplæringen viser hvordan eSigner er integrert med CircleCI for automatisert kodesignering. eSigner er SSL.coms skymiljø for kodesignering. Signeringsnøkler og sertifikater er trygt hostet i skyen av SSL.com og kan nås for signering fra hvilken som helst Internett-tilkoblet enhet, noe som gjør eSigner til en av de beste plattformene for signering av bedriftskode. eSigner-verktøysettet inkluderer CodeSignTool som er en kommandolinjeverktøy for EV-kode signering sertifikater og er ideell for å lage automatiserte signeringsprosesser i ulike Continuous Integration/Continuous Delivery (CI/CD)-plattformer inkludert CircleCI. 

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

Innganger

Forbered komponentene i arbeidsflyten (.NET Code DLL-signering)

  1. Opprett en .circleci-mappe

På arbeidsområdet for kodesignering oppretter du en .circleci-mappen. Under den lager du en config.yml-filen.

  1. Still inn CI-versjonen
versjon: 2.1
 
  1.  Påkalle jobber via arbeidsflyter. Arbeidsflyter orkestrerer et sett med jobber som skal kjøres. Jobbene for denne rørledningen er konfigurert nedenfor

Se: https://circleci.com/docs/2.0/configuration-reference/#workflows

arbeidsflyter:
 
  1. Skriv navnet på arbeidsflyten.
  dotnet:
 
  1. Inne i arbeidsflyten definerer du jobbene du vil kjøre.
 jobber: - bygge - tegn: krever: - bygge
 

Definer byggestadiet

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

 (Se: https://circleci.com/docs/2.0/configuration-reference/#jobs)

jobber: bygge:

 

  1. Lag en miljøvariabel
  miljø: PROJECT_NAME: HelloWorld PROJECT_VERSION: 0.0.1 DOTNET_VERSION: 3.1 ARBEIDSPLASS: /home/circleci/project

 

  1.  Definer en Docker-utøver: (https://circleci.com/docs/2.0/executor-types/)

    # Du kan spesifisere et bilde fra Dockerhub eller bruke et av våre bekvemmelighetsbilder fra CircleCIs utviklerhub.

 docker: - bilde: mcr.microsoft.com/dotnet/sdk:3.1-bullseye

 

  1. Plasser arbeidskatalogen for jobben
  arbeidskatalog: /home/circleci/project

 

  1. Legg til trinn i jobben

    Se: https://circleci.com/docs/2.0/configuration-reference/#steps

  trinn:

 

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

 

  1. Opprett artefaktkatalog for å lagre signerte og usignerte artefaktfiler
    - run: name: Create Artifacts Directory-kommando: | mkdir -p ${WORKSPACE}/artefakter mkdir -p ${WORKSPACE}/pakker

 

  1.  Bygg et dotnet-prosjekt eller -løsning og alle dets avhengigheter.
      - run: name: Build Dotnet Project Command: dotnet build dotnet/${PROJECT_NAME}.csproj -c Release

 

  1. Kopier artefakt til artefaktkatalog
  - kjør: navn: Kopier artefakter kommando: | cp dotnet/bin/Release/netcoreapp${DOTNET_VERSION}/${PROJECT_NAME}-${PROJECT_VERSION}.dll ${WORKSPACE}/packages/HelloWorld.dll

 

  1. Hold artefakten til artefaktkatalogen for signering
  - persist_to_workspace: rot: . stier: - pakker/*
 

Definer signeringsstadiet

  1. Definer signeringsjobben
 skilt:

 

  1. Lag en miljøvariabel
    miljø: ENVIRONMENT_NAME: PROD KOMMANDO: signer WORKSPACE: /home/circleci/project

 

  1.     Plasser arbeidskatalogen for jobben på Circle-CI
 arbeidskatalog: /home/circleci/project

 

  1. Artefaktnavn for signering
    parametere: artefaktnavn: type: streng standard: ''

 

  1. Definer en docker-utøver:

 For ytterligere referanse, se: https://circleci.com/docs/2.0/executor-types/

       Du kan spesifisere et bilde fra Dockerhub eller bruke et av våre bekvemmelighetsbilder fra CircleCIs utviklerhub.

       Sørg for å oppdatere Docker-bildekoden nedenfor til openjdk-versjonen av applikasjonen din.

       En liste over tilgjengelige CircleCI Docker Convenience-bilder er tilgjengelig her: https://circleci.com/developer/images/image/cimg/openjdk

   docker: - bilde: cimg/openjdk:17.0.3

 

  1. Legg til trinn i jobben

      For ytterligere referanse, se: https://circleci.com/docs/2.0/configuration-reference/#steps

    trinn:

 

  1. Opprett artefaktkatalog for å lagre signerte og usignerte artefaktfiler
  - run: name: Create Artifacts Directory-kommando: | mkdir -p ${WORKSPACE}/artefakter mkdir -p ${WORKSPACE}/pakker

 

  1. Legg ved Workspace for å få tilgang til artefaktfilen
   - attach_workspace: på: /home/circleci/project

 

  1. Aktiver Docker for CodeSigner på Circle-CI
 - setup_remote_docker: navn: Setup Remote Docker versjon: 19.03.13 docker_layer_caching: true

 

  1. Trekk Codesigner Docker Image fra Github Registry
        - run: name: Docker Pull Image kommando: | docker pull ghcr.io/sslcom/codesigner:siste docker pull alpine:3.4

 

  1. Skriv trinnet der artefakten skal signeres med CodeSignTool.
 - run: name: Sign Artifact File kommando: | docker create -v /codesign/packages --name codesign-in alpine:3.4 /bin/true docker create -v /codesign/artifacts --name codesign-out alpine:3.4 /bin/true docker cp ${WORKSPACE}/packages /<< parameters.artifact-name >> codesign-in:/codesign/packages docker run -i --rm --dns 8.8.8.8 --nettverksvert --volumes-from codesign-in --volumes-from codesign- ut -e USERNAME=${USERNAME} -e PASSWORD=${PASSWORD} -e CREDENTIAL_ID=${CREDENTIAL_ID} -e TOTP_SECRET=${TOTP_SECRET} -e ENVIRONMENT_NAME=${ENVIRONMENT_NAME} ghcr.io/sslcom/codesigner: ${COMMAND} -input_file_path=/codesign/packages/<< parameters.artifact-name >> -output_dir_path=/codesign/artifacts docker cp codesign-out:/codesign/artifacts/<< parameters.artifact-name >> ${ WORKSPACE}/artifacts/<< parameters.artifact-name >>

 

  1. Skriv trinnet for at artefakten skal lastes opp fra arbeidsflyten din, slik at du kan dele data mellom jobber og lagre data når en arbeidsflyt er fullført
    - store_artifacts: navn: Last opp signerte filer bane: /home/circleci/project/artifacts/<< parameters.artifact-name >> destinasjon: << parameters.artifact-name >>
 

Opprett et nytt depot på kommandolinjen

Kopier push-kommandokomponentene fra plasseringen til prosjektet ditt på GitHub-kontoen din

Inkluder alle push-kommandokomponenter i editoren

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Å

Sett opp et prosjekt på CircleCI ved å bruke depotet som er integrert i GitHub

Definer alle miljøvariablene

Mens prosjektet kjører, klikk på Prosjektinnstillinger-knappen etterfulgt av Miljøvariabler for å definere variablene

Plasser verdiene for hver variabel

Klikk på Legg til miljøvariabel for å legge til navn og verdier for alle variabler som kreves for prosjektet.

Vent til prosjektet skal bygges

Klikk på Vedvarer til arbeidsområdet

Vent kort på at arbeidsområdearkivet skal lastes opp.

Klikk på tegnknappen

Vent til Remote Docker er satt opp

Det kan ta mer enn ett minutt, avhengig av størrelsen på filen

Vent til gjenstandene blir signert

Klikk Artifacts tab

Hvis du klikker Artifacts, vil du kunne se filen som du har kodesignert. Du vil også bli varslet av CircleCI om vellykket kodesignering.

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

Eksempel på CircleCI Pipeline

Sjekk ut prøven CircleCI-pipeline vi har laget på github.com/SSLcom/codesigner-circleci-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.

Gå ut av mobilversjonen