SSL.com

Integratie van Cloud Code Signing met CircleCI

Deze tutorial laat zien hoe eSigner is geïntegreerd met CircleCI voor geautomatiseerde code-ondertekening. eSigner is de cloudomgeving van SSL.com voor het ondertekenen van codes. Ondertekeningssleutels en certificaten worden veilig gehost in de cloud door SSL.com en zijn toegankelijk voor ondertekening vanaf elk apparaat met internetverbinding, waardoor eSigner een van de beste platforms is voor het ondertekenen van bedrijfscodes. De eSigner-toolkit bevat CodeSignTool, een opdrachtregelprogramma voor EV-code ondertekenen certificaten en is ideaal voor het creëren van geautomatiseerde ondertekeningsprocessen in verschillende Continuous Integration/Continuous Delivery (CI/CD)-platforms, waaronder CircleCI. 

SSL.com's EV Code ondertekening certificaten helpen uw code te beschermen tegen ongeautoriseerde manipulatie en compromittering met het hoogste validatieniveau, en zijn beschikbaar voor slechts $ 249 per jaar. Je kan ook gebruik uw EV Code Signing-certificaat op schaal in de cloud met eSigner.

BESTEL NU

Omgevingsvariabelen

Ingangen

Bereid de componenten van de workflow voor (.NET Code DLL-ondertekening)

  1. Maak een .circleci-map

Maak op uw werkruimte voor codeondertekening een .circleci-map. Maak eronder een config.yml-bestand.

  1. Stel de CI-versie in
versie: 2.1
 
  1.  Oproepen oproepen via workflows. Werkstromen orkestreren een reeks taken die moeten worden uitgevoerd. De taken voor deze pijplijn worden hieronder geconfigureerd:

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

werkstromen:
 
  1. Schrijf de naam van de werkstroom.
  punt net:
 
  1. Binnen de workflow definieert u de taken die u wilt uitvoeren.
 jobs: - bouwen - teken: vereist: - bouwen
 

Definieer de bouwfase

  1. Definieer een taak die later in een workflow moet worden aangeroepen.

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

banen: bouwen:

 

  1. Een omgevingsvariabele maken
  omgeving: PROJECT_NAME: HelloWorld PROJECT_VERSION: 0.0.1 DOTNET_VERSION: 3.1 WERKRUIMTE: /home/circleci/project

 

  1.  Definieer een Docker-uitvoerder: (https://circleci.com/docs/2.0/executor-types/)

    # U kunt een afbeelding van Dockerhub specificeren of een van onze gemaksafbeeldingen van CircleCI's Developer Hub gebruiken.

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

 

  1. Plaats de werkmap voor de taak
  werkmap: /home/circleci/project

 

  1. Stappen toevoegen aan de taak

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

  stappen:

 

  1.  Bekijk de broncode zodat de workflow er toegang toe heeft.
    - uitchecken

 

  1. Maak een artefactmap om ondertekende en niet-ondertekende artefactbestanden op te slaan
    - run: naam: Create Artifacts Directory commando: | mkdir -p ${WORKSPACE}/artefacten mkdir -p ${WORKSPACE}/pakketten

 

  1.  Bouw een dotnet-project of -oplossing en al zijn afhankelijkheden.
      - run: naam: Build Dotnet Project Commando: dotnet build dotnet/${PROJECT_NAME}.csproj -c Release

 

  1. Kopieer artefact naar map met artefacten
  - run: naam: Copy Artifacts commando: | cp dotnet/bin/Release/netcoreapp${DOTNET_VERSION}/${PROJECT_NAME}-${PROJECT_VERSION}.dll ${WORKSPACE}/packages/HelloWorld.dll

 

  1. Houd het artefact in de map met artefacten voor ondertekening
  - persist_to_workspace: root: . paden: - pakketten/*
 

Definieer de ondertekeningsfase

  1. Definieer de ondertekeningstaak
 teken:

 

  1. Een omgevingsvariabele maken
    omgeving: ENVIRONMENT_NAME: PROD COMMAND: sign WORKSPACE: /home/circleci/project

 

  1.     Plaats de werkmap voor de job op Circle-CI
 werkmap: /home/circleci/project

 

  1. Artefactnaam voor ondertekening
    parameters: artifact-name: type: string default: ''

 

  1. Definieer een docker-uitvoerder:

 Zie voor aanvullende referentie: https://circleci.com/docs/2.0/executor-types/

       U kunt een afbeelding van Dockerhub specificeren of een van onze gemaksafbeeldingen van CircleCI's Developer Hub gebruiken.

       Zorg ervoor dat u de Docker-afbeeldingstag hieronder bijwerkt naar de openjdk-versie van uw toepassing.

       Een lijst met beschikbare CircleCI Docker-gemaksafbeeldingen is hier beschikbaar: https://circleci.com/developer/images/image/cimg/openjdk

   docker: - afbeelding: cimg/openjdk:17.0.3

 

  1. Stappen toevoegen aan de taak

      Zie voor aanvullende referentie: https://circleci.com/docs/2.0/configuration-reference/#steps

    stappen:

 

  1. Maak een artefactmap om ondertekende en niet-ondertekende artefactbestanden op te slaan
  - run: naam: Create Artifacts Directory commando: | mkdir -p ${WORKSPACE}/artefacten mkdir -p ${WORKSPACE}/pakketten

 

  1. Bijvoegen aan Workspace om toegang te krijgen tot het artefactbestand
   - attach_workspace: op: /home/circleci/project

 

  1. Schakel Docker voor CodeSigner in op Circle-CI
 - setup_remote_docker: naam: Setup Remote Docker-versie: 19.03.13 docker_layer_caching: true

 

  1. Codesigner Docker-afbeelding uit Github-register halen
        - run: naam: Docker Pull Image-opdracht: | docker pull ghcr.io/sslcom/codesigner: nieuwste docker pull alpine: 3.4

 

  1. Schrijf de stap waar het artefact zal worden ondertekend met CodeSignTool.
 - voer uit: naam: Sign Artifact File-commando: | 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 --network host --volumes-from codesign-in --volumes-from codesign- out -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:latest ${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. Schrijf de stap voor het uploaden van uw artefact vanuit uw workflow, zodat u gegevens tussen taken kunt delen en gegevens kunt opslaan zodra een workflow is voltooid
    - store_artifacts: naam: Upload ondertekende bestanden pad: /home/circleci/project/artifacts/<< parameters.artifact-name >> bestemming: << parameters.artifact-name >>
 

Maak een nieuwe repository op de opdrachtregel

Kopieer de push-opdrachtcomponenten van de locatie van uw project op uw GitHub-account

Voeg alle push-commandocomponenten toe aan uw editor

SSL.com's EV Code ondertekening certificaten helpen uw code te beschermen tegen ongeautoriseerde manipulatie en compromittering met het hoogste validatieniveau, en zijn beschikbaar voor slechts $ 249 per jaar. Je kan ook gebruik uw EV Code Signing-certificaat op schaal in de cloud met eSigner.

BESTEL NU

Zet een project op CircleCI op met behulp van de repository die is geïntegreerd in GitHub

Definieer alle omgevingsvariabelen

Terwijl het project loopt, klikt u op de knop Projectinstellingen gevolgd door Omgevingsvariabelen om de variabelen te definiëren

Plaats de waarden voor elke variabele

Klik op de Omgevingsvariabele toevoegen om de namen en waarden van alle variabelen die nodig zijn voor het project toe te voegen.

Wacht tot het project is gebouwd

Klik op Aanhoudend om werkruimte

Wacht even tot het werkruimtearchief succesvol is geüpload.

Klik op de tekenknop

Wacht tot de Remote Docker is ingesteld

Het kan meer dan een minuut duren, afhankelijk van de grootte van het bestand

Wacht tot de artefacten zijn ondertekend

Klik Artifacts tab

Als u klikt Artifacts, kunt u het bestand zien waarvan u de code succesvol hebt ondertekend. U wordt ook door CircleCI op de hoogte gebracht van de succesvolle ondertekening van de code.

U kunt verwijzen naar de SSL.com Github-repository die de broncodes van de docker-afbeelding bevat en beschrijft hoe deze te gebruiken: https://github.com/SSLcom/ci-images

Voorbeeld CircleCI-pijplijn

Bekijk het voorbeeld van de CircleCI-pijplijn waarop we hebben gemaakt github.com/SSLcom/codesigner-circleci-sample

Andere integratiehandleidingen voor CI/CD Remote Signing

Oplossingen op maat nodig? 

Met onze deskundige kennis en vijfsterrenondersteuningspersoneel staan ​​we klaar en bereid om met u samen te werken aan aangepaste oplossingen of grote ondertekeningskortingen op ondernemingsniveau. Vul het onderstaande formulier in en we nemen contact met je op.

Verlaat de mobiele versie