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".
- Extrahera zip-filen för att hämta filen "Setup.msi".
2. Installera EC KSP
-
Kör installationsprogrammet "Setup.msi" med administratörsbehörighet.
-
Följ installationsguidens anvisningar på skärmen.
- Godkänn slutanvändarlicensavtalet.
-
Välj installationskatalogen (standard är
C:\Program Files\Encryption Consulting\SigningKSP). -
Välj om du vill installera KSP för alla eller bara för den aktuella användaren.
-
Ange de uppmanade uppgifterna, till exempel:
- Användarnamn – Användarnamnet/e-postadressen som du använder för att logga in på CodeSign Secure-portalen.
- Koda – Den hemliga kod som du angav när du konfigurerade CodeSign Secure-lösningen.
- Identitetstyp – Behåll detta fält som standard (2).
-
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).
-
Klicka på Nästa och bekräfta installationen.
3. Konfigurera inställningarna för registerredigeraren
Öppna Registereditorn och navigera till
HKEY_CURRENT_USER > Software > Encryption Consulting > SigningKSPkatalog.
Öppna nu CodeSign Secure-portalen och navigera till Systeminställningar > AnvändareVälj alternativet ”Generera 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.
-
Lägg till den här token till ”ektoken” fältet i Registereditorn.
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”.
- 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.
2. Konfigurera miljövariablerna
-
Öppna miljövariablerna från din Start-meny.
-
Lägg till nya systemvariabler genom att klicka på Nytt knapp. Ange följande variabelnamn och motsvarande information.
- EC_Client_Auth: Motsvarar sökvägen till ditt SSL-autentiseringscertifikat, vilket kan skapas från CodeSign Secure.
- EC_Client_Password: Motsvarar lösenordet för ditt certifikat, vilket du angav när certifikatet skapades.
- EC_SSL_VERBOSE: Motsvarar inställningen för att antingen aktivera (1) eller inaktivera (0) felsökningsutgången för EC KSP.
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
-
Ö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.
-
Följ installationsguidens anvisningar på skärmen.
- Acceptera Windows Kit-sekretesspolicyn.
- Godkänn slutanvändarlicensavtalet.
-
Avmarkera allt utom "Windows SDK-signeringsverktyg för skrivbordsappar" och välj ”Installera”.
-
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.
- 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.
-
Bläddra ner genom systemvariablerna i den nedre tabellen tills du hittar VÄG i variabelnamnen.
-
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.
- 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.
-
Ange organisationens unika namn.
-
Den tar dig sedan till din organisations hemsida i CircleCI-kontot.
2. Skapa en resursklass för en självhostad löpare
-
Välj avsnittet "Löpare" i den vänstra sidofältet.
-
Den kommer först att be dig granska och bekräfta villkoren, varefter du kan skapa en resursklass för löparen.
-
Den omdirigerar dig sedan tillbaka till avsnittet Löpare för att skapa en 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.
-
Klicka på ”Fortsätt” för att lägga till den här löparen i din organisation.
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.
- Öppna PowerShell som administratör och navigera till katalogen där du placerade skriptfilen.
-
Kör följande kommando:
-
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072;
-
./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
- 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.
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.
-
Klicka på "Skapa ett projekt" och välj alternativet "Bygg, testa och driftsätt din programvara".
-
Ange projektnamnet och klicka på alternativet "Nästa: konfigurera en pipeline".
-
Ange namnet på pipelinen och klicka på alternativet "Nästa: välj ett repo".
-
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 repo efter att du har anslutit ditt GitHub-konto till CircleCI Pipeline.
-
Klicka på alternativet "Förbered konfigurationsfil" för att skicka en exempelkonfigurationsfil med yaml till en ny gren i ditt anslutna arkiv.
-
Den visar sedan ett exempel på ett repo. Klicka på alternativet "Nästa: 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 dina inställningar och klicka på alternativet "Kommit config and run".
-
Den kommer att köra pipelinen med den här exempelkonfigurationsfilen för att testa pipelinen.
-
Du kan se din pipeline från avsnittet "Pipelines" i vänster sidofält.
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:
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.
-
När du sparar den här uppdateringskonfigurationsfilen till din repository-gren bör löparen starta pipelinen automatiskt.

6. Kör CircleCI-pipelinen
-
När filen har genomförts ser du en ny pipeline-körning i avsnittet Pipeline.
-
När pipelinen har slutförts kan du kontrollera egenskaperna för filen som skulle signeras för att se om signaturen är giltig.
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.
