Hoppa till innehåll

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

Registrera nu

Hur man integrerar en Jenkins CI CD-pipeline med kodsignering

uppgifter relaterade till mjukvaruutveckling
Innehållsförteckning

Jenkins är ett automatiseringsverktyg med öppen källkod som används flitigt för kontinuerlig integration och kontinuerlig leverans (CI/CD) av programvaruapplikationer. Jenkins tillhandahåller ett webbaserat användargränssnitt som gör det enkelt att konfigurera och hantera jobb, vilka är automatiserade uppgifter som kan schemaläggas att köras vid specifika tidpunkter eller utlösas av specifika händelser. Dessa jobb kan användas för att kompilera kod, köra tester, distribuera applikationer och utföra många andra uppgifter relaterade till programvaruutveckling.

Några av Jenkins viktigaste funktioner inkluderar:

  • Enkel installation och installation

    Jenkins är enkelt att installera och konfigurera och kan konfigureras på en mängd olika operativsystem och plattformar.

  • Kraftfull jobbhantering

    Jenkins låter dig skapa och hantera jobb, vilket är automatiserade uppgifter som kan schemaläggas att köras vid specifika tidpunkter eller utlösas av specifika händelser. Jobb kan användas för att kompilera kod, köra tester, distribuera applikationer och utföra många andra uppgifter relaterade till mjukvaruutveckling.

  • Brett utbud av plugins och integrationer

    Jenkins har ett stort antal plugins och integrationer tillgängliga, vilket gör att det kan fungera med många olika verktyg och tekniker. Detta gör det mycket anpassningsbart och flexibelt.

  • Stöd för pipelines

    Jenkins har starkt stöd för pipelines, vilka är uppsättningar av steg som definierar ett arbetsflöde för mjukvaruutveckling. Pipelines kan definieras med hjälp av kod, vilket gör dem mycket anpassningsbara och enkla att versionskontrollera.

  • Inbyggt teststöd

    Jenkins erbjuder inbyggt stöd för många olika typer av tester, inklusive enhetstester, integrationstester och funktionstester. Detta gör det enkelt att köra tester som en del av ett kontinuerligt integrationsarbetsflöde, vilket säkerställer att alla kodändringar testas noggrant innan de driftsätts till produktion.

  • Skalbarhet

    Jenkins kan enkelt skalas för att stödja stora utvecklingsteam och komplexa arbetsflöden för mjukvaruutveckling.

  • Öppen källkod

    Jenkins är programvara med öppen källkod, vilket innebär att den är gratis att använda och kan anpassas för att möta de specifika behoven hos ditt utvecklingsteam.

Samdesign med Jenkins

Kodsignering är en procedur som verifierar upphovsmannens legitimitet och originaliteten och äktheten hos digital information, särskilt programkod. Den säkerställer också att informationen inte är skadlig kod. Dessutom garanterar den att denna information inte har ändrats, förfalskats eller annullerats efter att ha blivit digitalt signerad.

För att utföra samdesign med Jenkins, följ stegen nedan.

Förutsättningar för att utföra denna uppgift inkluderar:

  1. Jenkins-installation och konfiguration på din enhet
  2. Signtool installerat och konfigurerat
  3. ECSigning KSP installerad och konfigurerad.

För att konfigurera Jenkins, gå igenom länk.

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.

För att installera och konfigurera Signtool, följ stegen nedan:

Signtool kan laddas ner som en del av Windows SDK. Ladda ner Windows SDK: (developer.microsoft.com/en-us/windows/downloads/windows-10-sdk/)

Du kan välja att endast installera Windows SDK-signeringsverktygen för skrivbordsappar.

Öppna filen winsdksetup.exe. Kom ihåg standardsökvägen som visas i installationssökvägen, eftersom det kommer att vara till hjälp när du kör dessa kommandon från kommandotolken.

Windows SDK-hem

På sidan Sekretess för Windows Kits är båda alternativen för att tillåta Microsoft att samla in insikter okej. Klicka på Nästa.

sekretess för Windows SDK

Acceptera licensavtalet

licensavtal för Windows SDK

Avmarkera alla funktioner utom Windows SDK-signeringsverktyg för skrivbordsappar, välj sedan installera.

Windows SDK-funktion

När du tillfrågas om du vill tillåta att den här appen gör ändringar väljer du ja.

kontroll av Windows användarkonto
Windows SDK slutgiltig

Klicka på Windows sökfält i aktivitetsfältet och skriv "Redigera systemmiljövariablerna" och välj alternativet med samma namn på kontrollpanelen.

redigera systemmiljövariabel

Klicka miljövariabler.

miljövariabler modala

Innan du redigerar variabellistan, navigera till var Windows SDK är installerat med hjälp av Utforskaren. Du måste kopiera sökvägen till mappen som innehåller signtool-applikationen. Standardsökvägen är C:\Programfiler (x86)\Windows-paket\10\bin\10.0.22621.0\x64, Se skärmdumpen nedan. Se till att högerklicka och kopiera sökvägen som visas. Du kan också se signtool-applikationen längst ner i fillistan, det är det kommandot du kommer att köra.

installationsväg för signtool

I listan Systemvariabler klickar du på ny. Skriv sedan sökväg som variabelnamn och kopiera och klistra in den ovannämnda sökvägen. Klicka sedan på OKmiljö variabler fönster och system egenskaper fönster.

lägg till ny systemvariabel

För att testa installationen, öppna kommandotolken och skriv signtool, så bör utdata vara som visas nedan.

signtool-kommandotolken

Standardinstallationsplatsen för signtool är till exempel: C:\Programfiler (x86)\Windows-paket\10\bin\10.0.22621.0\x64

För att konfigurera KSP, följ stegen nedan:

Krypteringskonsulttjänster erbjuder dig denna lösning, KodSignSäkerDen här lösningen kan hjälpa dig med manipulationssäker förvaring av nycklarna och fullständig insyn och kontroll över kodsigneringsaktiviteter. De privata nycklarna till kodsigneringscertifikatet kan lagras i en HSM för att eliminera riskerna med stulna, skadade eller missbrukade nycklar.

Om du använder vår lösning kan du ladda ner KSP med hjälp av stegen nedan:

  • Logga in Kodsignera säkert.
  • Navigera till: Arkiv för signeringsverktyg.

    codesign-sida för verktyg för säkra signering
  • Ladda ner “Krypteringskonsulting CNG-SigningKSP”
  • Installera klientverktygen med hjälp av .MSI-installationsprogrammet. .MSI-installationsprogrammet automatiserar mycket av konfigurationen. Navigera till var den nedladdade filen är sparad och starta installationsprogrammet.

    msi-installationsprogrammet
  • Klicka på Nästa när installationsguiden visas.

    ec-signering ksp-installation hem
  • Klicka på nästa.

    installation av ec-signering av ksp-installationsmapp
  • I Användarnamn fält, skriv admin.
  • I Koda fältet, kopiera koden från Postman API-arkiv. Klicka på Hämta inloggningstoken api och kopiera koden från Kropp.

    Ladda ner PostMan härifrån länkNär den är nedladdad klickar du på hoppa över-knappen längst ner i fönstret. Lägg till en ny samling med hjälp av plustecknet bredvid samlingarna på instrumentpanelen.

    GetLoginToken API (http://codesignsecureapi.encryptionconsulting.com/api/auth/GetLoginToken): Detta är det viktigaste API:et, eftersom det ger dig en Bärartoken För att använda med resten av API:erna, vad som ska finnas i brödtexten visas nedan. Koden fungerar som ett lösenord för att få en Bearer-token, användarfältet är användarnamnet och identitetstypsfältet anger användartypen. Klicka Skicka för att generera en utdata som har Bearer-token listad längst ner. Kopiera denna token för användning.

    brevbärartoken-API
  • Ändra Identitet Typ till 1.
  • Lämna API-basURL det samma.
  • Klicka på nästa.

    ec-signering ksp-inställningar användarautentiseringsinformation
  • Klicka på nästa.

    ec-signering ksp installation installationsbekräftelse
  • Du får då ett meddelande om att programmet kommer att göra ändringar på din dator, klicka på ja.

    msi-installation av användarkontokontroll
  • Installationen är nu klar.

    EC-signering KSP-installation klar

När Jenkins är konfigurerat behöver vi administratörsbehörighet för att köra kommandot signtool. För att se om vi har ställt in administratörsbehörighet för Jenkins, och om vi inte har det, för att ställa in den.

  • Gå till tjänster på ditt system (du kan bara söka efter det)
  • Scrolla ner till Jenkins. Där, i kolumnen "Logga in som", kan du se användarkontot som är konfigurerat för Jenkins. Om det är inställt på något annat än ".\Administratör" (Lokal tjänst/System, Nätverkstjänst/System), måste vi ställa in det som Administratör.
  • Dubbelklicka på Jenkins eller högerklicka > Egenskaper för att öppna Egenskaper. Gå till Logga in.

    Välj "Detta konto"

    Ställ in den som ".\Administratör". Ange ett lösenord, helst administratörslösenord. Klicka på Verkställ när du är klar.

    Jenkins fastigheter

När vi har ställt in detta går vi vidare till Jenkins. Oavsett vilken URL/värdnamn du angav tidigare under konfigurationen, kommer navigering till det från din webbläsare att leda dig till Jenkins. I mitt system har jag konfigurerat det som http://localhost:8080/ (Det är också standard).

Följ stegen nedan i din instrumentpanel:

  • Från instrumentpanelen klicka på Nytt objekt.

    Jenkins instrumentpanel
  • Ange valfritt objektnamn och klicka på pipeline och klicka på ok.

    jenkins ange objektnamn
  • På konfigurationssidan, under Allmänt, skriv in en önskad beskrivning.

    Jenkins allmänna konfiguration
  • Scrolla ner till botten för att hitta Pipeline.

    jenkins konfigurerar pipeline
  • Skriv skriptet i skriptrutan och klicka på spara. Du måste redigera din miljövariabel enligt dina inställningar.

    pipeline { agent valfri miljö { SM_KEY_NAME='evcodesigning' SM_CLIENT_CERT_FILE='C:\\Användare\\Administratör\\Skrivbord\\FörTesting\\evcodesigning.pem' SM_HASHING_ALGORITHM='SHA256' SM_TIME_STAMP_SERVER="http://timestamp.digicert.com" SM_FILEPATH="C:\\Användare\\Administratör\\Skrivbord\\FörTesting\\AgentService.exe" } stages { stage('Kodsignering') { steps { dir('C:\\Användare\\Administratör\\Skrivbord\\FörTesting'){ bat 'signtool signera /csp "Krypteringskonsulttjänst för nyckellagring" /kc %SM_KEY_NAME% /fd %SM_HASHING_ALGORITHM% /f %SM_CLIENT_CERT_FILE% /tr %SM_TIME_STAMP_SERVER% /td SHA256 %SM_FILEPATH%' } } } } }
    
  • Klicka på bygg nu så ser du ett byggnummer som visas på skärmen.

    Jenkins bygger
  • Om du klickar på byggnumret och väljer konsolutdata ser du att din fil har signerats.

    Jenkins har signerat filen