Hoppa till innehåll

Webinar: Registrera dig för vårt kommande webbinarium

Registrera nu

Så här integrerar du CodeSign Secure med din CircleCI-pipeline

Integrera CodeSign Secure med din CircleCI-pipeline

All programvara som någonsin distribuerats är bara så pålitlig som processen som producerade den. Kodsignering ligger i centrum för det förtroendet – det bevisar att en binärfil inte har manipulerats och att den verkligen kommer från din organisation. Men manuell signering av byggen är felbenägen och saktar ner ditt team. Det bättre sättet är att få signeringen direkt i din CI/CD pipeline, så det sker automatiskt, konsekvent och säkert på varje build.

Den här guiden guidar dig genom hur du integrerar Encryption Consultings CodeSign Secure med CircleCI med hjälp av Microsofts Signtool och en självhostad CircleCI-runner på en Windows-maskin. Med dessa integrationssteg kommer din pipeline automatiskt att signera varje build med nycklar som lagras säkert i CodeSign Secures. HSM-stödd plattform — utan att några privata nycklar någonsin exponeras på byggmaskinen.

Vad du behöver

Innan du börjar, se till att du har följande på plats:

  • En aktiv CodeSign Secure konto med portalåtkomst
  • En Windows-maskin som kommer att fungera som din självhostade CircleCI-körare
  • Ett CircleCI-konto
  • Ett GitHub-arkiv (eller annat stödt) för att ansluta till ditt CircleCI-projekt
  • Administratörsåtkomst på Windows-maskinen för att installera verktyg

Vad den här guiden täcker

Installationen är uppdelad i fyra huvudsektioner, där varje sektion bygger på den sista:

  • Ställa in EC KSP — Installera och konfigurera Encryption Consultings Key Storage Provider på din Windows-dator
  • Konfigurera P12-autentisering — Skapa ett maskinautentiseringscertifikat och konfigurera miljövariabler
  • Konfigurera Signtool — Installera Windows SDK och peka din miljö mot Signtool.exe
  • Konfigurera och köra CircleCI — Skapa din organisation, runner, projekt och pipeline-konfiguration för att knyta ihop allt

Konfigurera CodeSign Secure KSP

Encryption Consulting Key Storage Provider (KSP) för Windows är en programvarukomponent som utökar Microsoft Cryptography API: Next Generation (CNG)-ramverket. Dess primära syfte är att göra det möjligt för Windows-applikationer, som signtool.exe, att interagera sömlöst med kryptografiska nycklar och certifikat lagras i en HSM.

Steg:

1. Ladda ner EC KSP

  • Logga in på CodeSign Secure-portalen och navigera till avsnittet Signeringsverktyg för att ladda ner "EC KSP för Windows".

    Codesign säker portal
  • Extrahera zip-filen för att hämta filen "Setup.msi".

2. Installera EC KSP

  • Kör installationsprogrammet "Setup.msi" med administratörsbehörighet.

    Välkommen till EC KSP
  • Följ installationsguidens anvisningar på skärmen.
    1. Godkänn slutanvändarlicensavtalet.
    2. Välj installationskatalogen (standard är C:\Program Files\Encryption Consulting\SigningKSP).
    3. Välj om du vill installera KSP för alla eller bara för den aktuella användaren.

      EC-signering KSP
  • Ange de uppmanade uppgifterna, till exempel:
    1. Användarnamn – Användarnamnet/e-postadressen som du använder för att logga in på CodeSign Secure-portalen.
    2. Koda – Den hemliga kod som du angav när du konfigurerade CodeSign Secure-lösningen.
    3. Identitetstyp – Behåll detta fält som standard (2).
    4. CodeSign säker URL – URL:en för att komma åt portalen (Kom ihåg att lägga till “/api/” i slutet av URL:en).

      API-användarautentisering
  • Klicka på Nästa och bekräfta installationen.

    Installera EC Sigining KSP

3. Konfigurera inställningarna för registerredigeraren

  • Öppna Registereditorn och navigera till HKEY_CURRENT_USER > Software > Encryption Consulting > SigningKSP katalog.

    Signering av KSP-mapp
  • Öppna nu CodeSign Secure-portalen och navigera till Systeminställningar > AnvändareVälj alternativet ”Generera API-nyckel”.

    Skapa API-nyckel
  • Skapa en token för ditt konto genom att ange ett namn och giltighetsperiod. Kom ihåg att kopiera token eftersom den bara visas en gång.

    API-nyckelmodal
  • Lägg till den här token till ”ektoken” fältet i Registereditorn.

    EC-token

Konfigurera P12-autentiseringscertifikat

Att konfigurera ett P12-certifikat innebär att du konfigurerar dina miljövariabler för att autentisera din klientdator med Encryption Consultings CodeSign Secure.

Steg:

1. Skapa ett maskinautentiseringscertifikat

  • Öppna CodeSign Secure-portalen och navigera till Systeminställningar > AnvändareVälj alternativet ”Generera autentiseringscertifikat”.

    Generera autentiseringscertifikat
  • Välj användarnamnet från rullgardinsmenyn och ange detaljer som certifikatnamn och dess utgångsdatum.
  • Den kommer då att ge dig en .pfx certifikatfilen och även visa lösenordet till certifikatfilen.

    OBS: Detta lösenord visas bara en gång. Så du måste kopiera och lagra det på ett säkert sätt för att utföra autentiseringen med CodeSign Secure-servern.

    Generera autentiseringscertifikatmodal

2. Konfigurera miljövariablerna

  • Öppna miljövariablerna från din Start-meny.

    Systemegenskaper
  • Lägg till nya systemvariabler genom att klicka på Nytt knapp. Ange följande variabelnamn och motsvarande information.
    1. EC_Client_Auth: Motsvarar sökvägen till ditt SSL-autentiseringscertifikat, vilket kan skapas från CodeSign Secure.
    2. EC_Client_Password: Motsvarar lösenordet för ditt certifikat, vilket du angav när certifikatet skapades.
    3. EC_SSL_VERBOSE: Motsvarar inställningen för att antingen aktivera (1) eller inaktivera (0) felsökningsutgången för EC KSP.
    Miljövariabler

Konfigurera Signtool för signering

Inställning teckenverktyg För kodsignering innebär det att säkerställa att verktyget Signtool.exe är tillgängligt på din dator och konfigurerat för att korrekt interagera med Encryption Consultings kryptografiska leverantör som ger åtkomst till ditt kodsigneringscertifikats privata nyckel.

Steg:

1. Ladda ner och installera Windows SDK

  • Ladda ner Windows Software Development Kit med hjälp av följande nedladdningslänk: Nedladdningar av Windows SDK – Windows-appar | Microsoft Learn

    Windows Development Kit
  • Öppna installationsprogrammet när det har laddats ner och välj "Nästa" på den första skärmen för att behålla standardinställningarna.

    Ange plats
  • Följ installationsguidens anvisningar på skärmen.
    1. Acceptera Windows Kit-sekretesspolicyn.
    2. Godkänn slutanvändarlicensavtalet.
  • Avmarkera allt utom "Windows SDK-signeringsverktyg för skrivbordsappar" och välj ”Installera”.

    Installera utvecklingspaket
  • Gå till följande sökväg dit verktygen ska ha laddats ner: C:\Program Files (x86)\Windows Kits\10\binVälj önskad versionskatalog och kontrollera om "signtool.exe" filen finns.

    Signtool.exe
  • Se till att du är i x64 katalogen och kopiera sökvägen till den här katalogen.

2. Lägg till sökvägen till Signtool.exe i miljövariabler

  • Öppna miljövariablerna från Start-menyn.

    Systemegenskaper
  • Bläddra ner genom systemvariablerna i den nedre tabellen tills du hittar VÄG i variabelnamnen.

    Hitta sökväg
  • Dubbelklicka på VÄG i systemvariabler och välj Nytt till vänster på skärmen. Klistra in din kopierade katalogsökväg för "signtool.exe" in i det nya valet.

    Redigera miljövariabler
  • Välja OK längst ner för att avsluta sidan Miljövariabler.

Konfigurera CircleCI

Att konfigurera CircleCI kräver att du konfigurerar organisationen, konfigurerar ditt projekt och specifikt dina byggmaskiner med löpare och pipelines för att signera filer med signtool på en Windows-maskin.

Steg:

1. Skapa en CircleCI-organisation

  • Navigera till CircleCI och logga in med ditt konto. Det visar då alternativen för att antingen skapa en ny organisation eller välja en som redan skapats. I den här guiden kommer vi att skapa en ny organisation.

    Välkommen till CircleCI
  • Ange organisationens unika namn.

    Unikt namn
  • Den tar dig sedan till din organisations hemsida i CircleCI-kontot.

    Organisationshem

2. Skapa en resursklass för en självhostad löpare

  • Välj avsnittet "Löpare" i den vänstra sidofältet.

    Runners
  • Den kommer först att be dig granska och bekräfta villkoren, varefter du kan skapa en resursklass för löparen.

    Löpare med egen värd
  • Den omdirigerar dig sedan tillbaka till avsnittet Löpare för att skapa en resursklass.

    Anpassad resursklass
  • Klicka på "Spara och fortsätt" så får du autentiseringstoken.

    OBS: Kopiera och förvara denna token på ett säkert sätt eftersom vi kommer att behöva den i nästa steg för att autentisera löparen med CircleCI-pipeline.

    Installera självhostad Runner
  • Klicka på ”Fortsätt” för att lägga till den här löparen i din organisation.

    Resursklass skapad

3. Installera Runner på din Windows-maskin

  • När vi har hämtat en token behöver vi installera en självhostad runner på vår maskin. Det är på den maskin Signtool och ECSigningKSP installeras och konfigureras.
  • Ladda ner skriptet ”Install-CircleCIRunner.ps1” från GitHub på den här maskinen.

    CircleCI-arkivet
  • Öppna PowerShell som administratör och navigera till katalogen där du placerade skriptfilen.
  • Kör följande kommando:
    1. Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072;
    2. ./Installera-CircleCIRunner.ps1;
  • Som en del av installationen öppnas konfigurationsfilen för maskinens runner (runner-agent-config.yaml) i Anteckningar. Fyll i den begärda informationen. Konfigurationsfilen finns som standard i installationskatalogen C:\Program Files\CircleCI.
  • Ange autentiseringstoken som vi skapade när vi skapade resursklassen

    Autentiseringstoken
  • Efter att löparinstallationen är klar startar den automatiskt och börjar söka efter jobb.
  • Du kommer att kunna se en löpare på CircleCI-sidan.

    Samtidig användning

4. Skapa ett projekt och konfigurera en pipeline

  • Nu går vi tillbaka till organisationens hemsida för att skapa ett projekt och initiera pipelinen.

    Organisationshem
  • Klicka på "Skapa ett projekt" och välj alternativet "Bygg, testa och driftsätt din programvara".

    Projekt
  • Ange projektnamnet och klicka på alternativet "Nästa: konfigurera en pipeline".

    Projekt detaljer
  • Ange namnet på pipelinen och klicka på alternativet "Nästa: välj ett repo".

    Uppsättning av rörledning
  • Du kan välja vilket repo du vill ansluta till din pipeline. Vi kommer att använda ett GitHub-repo för den här guiden.

    Välj arkiv för pipeline
  • Välj repo efter att du har anslutit ditt GitHub-konto till CircleCI Pipeline.

    Anslut GitHub
  • Klicka på alternativet "Förbered konfigurationsfil" för att skicka en exempelkonfigurationsfil med yaml till en ny gren i ditt anslutna arkiv.

    Förbered konfiguration
  • Den visar sedan ett exempel på ett repo. Klicka på alternativet "Nästa: konfigurera dina triggers".

    Konfigurera dina triggers
  • Du kan ställa in triggers enligt dina behov. Vi lämnar detta som standard, med pipelinen som körs vid varje ny commit. Klicka på alternativet "Nästa: granska och slutför installationen".

    Granska och slutför installationen
  • Granska dina inställningar och klicka på alternativet "Kommit config and run".

    Granska inställningarna
  • Den kommer att köra pipelinen med den här exempelkonfigurationsfilen för att testa pipelinen.

    Bygg och testa
  • Du kan se din pipeline från avsnittet "Pipelines" i vänster sidofält.

    Rörledningar

5. Uppdatera pipeline-konfigurationen

  • Nu kommer vi att uppdatera config.yml-filen på vår repo-gren för att köra signtool-kommandot och utföra signeringen.
  • Följ strukturen nedan för config.yml för att köra signtool-kommandot via CircleCI-pipelinen:

    Konfigurera YML
  • Här är en fungerande config.yml-fil som referens, som matchar de detaljer som vi använde i de tidigare stegen för att stegvis konfigurera resursklassen och signtool.

    Konfigurera YML
  • När du sparar den här uppdateringskonfigurationsfilen till din repository-gren bör löparen starta pipelinen automatiskt.

    Konfigurera YAML

6. Kör CircleCI-pipelinen

  • När filen har genomförts ser du en ny pipeline-körning i avsnittet Pipeline.

    Uppdaterad konfiguration
  • När pipelinen har slutförts kan du kontrollera egenskaperna för filen som skulle signeras för att se om signaturen är giltig.

    Exempel PS1

Lösning för företagskodsignering

Få en lösning för alla dina behov av kodsignering och kryptografi för mjukvara med vår kodsigneringslösning.

Slutsats

Du har nu konfigurerat en helautomatiserad kodsigneringspipeline med CircleCI och CodeSign SecureVarje gång en utvecklare committar till ditt repository, triggar pipelinen, hämtar jobbet på din självhostade Windows-runner och signerar utdata med Signtool – allt utan att någon hanterar en privat nyckel manuellt. Denna metod erbjuder några viktiga fördelar för ditt team, såsom konsekvens, säkerhet och granskningsbarhet. Härifrån kan du utöka denna installation för att täcka flera pipelines, ytterligare signeringscertifikat eller andra CI/CD-plattformar.

Om du stöter på problem eller vill utforska mer avancerade konfigurationer finns Encryption Consulting-teamet här för att hjälpa dig. Registrera dig för en demo eller kontakta Encryption Consulting-teamet på www.encryptionconsulting.com för att lära dig hur CodeSign Secure kan göra din organisations programvaruleveranskedja säker och effektiv.