Hoppa till innehåll

47-dagarscertifikat kommer. Är du redo?

Agera nu →

Hur integrerar man en GitHub Actions CI/CD-pipeline med kodsignering?

utvecklingsplattform (CI/CD)

GitHub Actions är en plattform för kontinuerlig integration och kontinuerlig utveckling (CI/CD) som låter användare automatisera sin pipeline för byggande, testning och distribution. Användare kan utforma arbetsflöden som bygger och testar varje pull- och push-förfrågan till deras repository eller distribuera sammanslagna pull-förfrågningar till produktion. GitHub Actions är ett kraftfullt verktyg som låter utvecklare automatisera arbetsflöden inom sina GitHub-repositories.

Varje arbetsflöde består av ett eller flera jobb, som består av ett eller flera steg. Varje steg är en uppsättning kommandon som körs på en runner, vilket är en virtuell maskin som kör dina arbetsflöden.

Komma igång med GitHub-åtgärder

För att komma igång med GitHub Actions behöver du ett GitHub-konto och ett repository. När du har skapat ditt repository kan du skapa ett nytt arbetsflöde genom att lägga till en YAML-fil i katalogen .github/workflows i ditt repository.

Några av de termer som används i arbetsflödet för att definiera YAML-filer listas nedan. Låt oss bryta ner detta arbetsflöde för att förstå hur det fungerar:

  • Namn: Detta är namnet på arbetsflödet.

  • på: Detta anger när arbetsflödet ska utlösas. Till exempel kan arbetsflödet köras när en pull request öppnas på en gren.

  • jobb: Detta är en lista över jobb som kommer att utföras som en del av arbetsflödet.

  • påkörning: Detta anger operativsystemet och miljön för jobbet. Vi kan konfigurera en självhostad runner för vårt jobb. Vi konfigurerar en självhostad runner för detta.

  • steg: Detta anger en lista över steg som kommer att utföras som en del av jobbet.

  • användningsområden: Detta är en genväg för att använda en befintlig åtgärd från GitHub Marketplace. I vårt skript använder vi åtgärden actions/checkout för att checka ut repository-koden.

  • Namn: Detta är namnet på steget.

  • sikt: Detta är ett shell-kommando som kommer att köras som en del av steget.

Samdesign med GitHub-åtgärder

Kodsignering är processen med digital signering programkod för att verifiera dess äkthet och integritet. Det är en säkerhetsåtgärd som hjälper till att säkerställa att koden inte har manipulerats och kommer från en betrodd källa.

Vi kan utföra samdesign med hjälp av GitHub-åtgärder. För detta skapar vi ett arbetsflöde i vårt önskade repository i GitHub och utför samdesign med hjälp av skriptet.

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

  1. Ett GitHub-arkiv (du behöver ett administratörskonto).
  2. En Runner där Signtool och ECSigning KSP är installerade och konfigurerade.

Innan vi börjar behöver vi konfigurera en runner. Runner kommer att installeras på den enhet där du har Signtool och ECSigning KSP installerade och konfigurerade. För att göra det på din enhet, följ stegen nedan.

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

För att ställa in löparen, följ stegen nedan:

Navigera till ditt Github-arkiv.

  • Navigera till inställningar för arkivet
  • Scrolla ner till Åtgärder och välj Löpare från rullgardinsmenyn.
  • Klicka på Ny självhostad löpare.

    Github-inställningar Löpare

När du har gjort det kan du klicka på den löparbild (macOS/Linux/Windows) du vill ha. Instruktionerna nedan gäller för Windows. Du kommer att se flera kommandon som ska följas på skärmen.

Kör kommandona som visas i konfigurationen av runnern. Kommandona ges också nedan:

När du ser Github Actions skrivet på din skärm blir du ombedd att registrera dig som löpare.

Powershell GitHub-åtgärder
  • Ange namnet på löpargruppen som löparen ska läggas till i: [tryck Enter för standardinställning] (Du kan lämna detta till standardinställningen).
  • Ange löparens namn: [tryck Enter för KLIENT] (Du kan ange önskat namn för din löpare).
  • Denna runner kommer att ha följande etiketter: 'självhostad', 'Windows', 'X64'

    Ange eventuella ytterligare etiketter (t.ex. etikett-1, etikett-2): [tryck Enter för att hoppa över] (Ange en etikett här, det kan vara vad som helst, lämna/hoppa inte över det här steget. Samma namn kommer att användas senare för att anropa runner i skriptet).

  • Följande kommer att visas på skärmen när det är klart

    • Löpare har lagts till
    • Löparkopplingen är bra
    • Löparinställningar
  • Ange namn på arbetsmappen: [tryck Enter för _arbete] (Du kan lämna detta till standard eller så kan du ange en mapp du vill ha)

    Inställningar sparade

  • Vill du köra löparen som en tjänst? (J/N) [tryck Enter för N] (Ange J)
  • Användarkonto som ska användas för tjänsten [tryck Enter för NT AUTHORITY\NETWORK SERVICE] (Se till att du anger Administratör här)

    (Administratörsbehörighet krävs för att köra kommandot. Därför är det MÅSTE att ange användaren som administratör)

  • Lösenord för kontot CLIENT\Administrator (Ange lösenordet för ditt administratörskonto)
  • När du är klar ser du följande uppmaning på skärmen.

    Den kommer att visas som Service actions.runner. .

    Beviljar filbehörigheter till 'KLIENT\Administratör'.

    Tjänst actions.runner.Encryption-Consulting-LLC-CodeSignSecure-Desktop.TryThree har installerats

    Service actions.runner.Encryption-Consulting-LLC-CodeSignSecure-Desktop.TryThree har ställt in återställningsalternativet

    Tjänsten actions.runner.Encryption-Consulting-LLC-CodeSignSecure-Desktop.TryThree har ställts in på fördröjd automatisk start.

    Tjänsten actions.runner.Encryption-Consulting-LLC-CodeSignSecure-Desktop.TryThree har konfigurerats

    Väntar på att tjänsten ska starta…

    Tjänsten actions.runner.Encryption-Consulting-LLC-CodeSignSecure-Desktop.TryThree startade utan problem

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.

När löparen är konfigurerad på din enhet, navigera till ditt repository på GitHub.

Gå till Åtgärder.

Klicka på Nytt arbetsflöde

Klicka på Konfigurera ett arbetsflöde själv

github-arbetsflöden

Så här kommer din editor att se ut. Du kan byta namn på din .yaml-fil eller lämna namnet till standardnamnet.

github-redigeraren

Lägg till skriptet nedan i din editor efter att du har gjort några ändringar eller uppdaterat variablerna.

 namn: Kodinloggning på: push: branches: <[ Ditt filialnamn ]> jobs: build: runs-on: steg: - namn: Utcheckningskod använder: actions/checkout@v2 - namn: Signera kod körs: | signtool signera /csp "Krypteringskonsulttjänst för nyckellagring" /kc /fd /f " " /tr /td SHA256 " "

Vänligen ersätt variablerna som anges under En kort beskrivning av den förväntade variabeln ges nedan.

Här anger du sökvägen till den fil som du vill signera. Exempel C:\ \ Se till att du har angett ett filnamn med rätt filändelse.

Detta hänvisar till den kryptografiska nyckel som används för att signera koden. Exempel: evcodesigning

Ett exempel på vad som kan skrivas in i det här fältet är C:\testing.pem. Certifikatet.pem filen MÅSTE inkluderas i denna indata. Du kan generera en pem-fil av certifikatet för samdesign, om du har nyckelnamnet med hjälp av ECSigningKSP. Följ kommandona nedan för att göra det:

På den enhet där du har ECSigningKSP installerat och konfigurerat, navigera till mappen för ECSigningKSP, som vanligtvis finns i "C:\Program Files\Encryption Consulting\SigningKSP".

I kommandotolken, gå till den här katalogen.

Använd sedan följande kommando för att hämta pem-filen för certifikatet.

ECGetCert.exe  (exempel: ECGetCert.exe evcodesigning)

Ange platsen för det sparade certifikatet.

Du måste ange namnet på hashalgoritmen, till exempel SHA256, SHA384 eller SHA512. Det måste vara ett av dessa tre värden.

: En tidsstämpelserver ger bevis på att en digital signatur utfördes vid en specifik tidpunkt, vilket möjliggör verifiering i framtiden att en fil signerades vid en viss tidpunkt. Den vi vanligtvis använder är http://timestamp.digicert.com

Kommandot jag använde för signering var

signtool sign /csp "Krypteringskonsulttjänst för nyckellagring" /kc evcodesigning /fd SHA256 /f "C:\Användare\Administratör\Skrivbord\FörTesting\evcodesigning.pem" /tr http://timestamp.digicert.com /td SHA256 "C:\Användare\Administratör\Skrivbord\FörTesting\AgentService.exe"

Skriptet jag använde var:

 namn: Kodinloggning på: push: branches: [ Github_Actions ] jobs: build: runs-on: runner steps: - namn: Utcheckningskod använder: actions/checkout@v2 - namn: Signera kod kör: | signtool sign /csp "Krypteringskonsulttjänst för nyckellagring" /kc evcodesigning /fd SHA256 /f "C:\Användare\Administratör\Desktop\FörTesting\evcodesigning.pem" /tr http://timestamp.digicert.com /td SHA256 "C:\Användare\Administratör\Desktop\FörTesting\AgentService.exe"

När du har redigerat ditt skript klickar du på commit. Du kan commit direkt till din standardgren eller commit till en ny gren. Se till att du uppdaterar namnet på din gren i koden. Efter commit körs jobbet.

github commit

Slutsats

Krypteringskonsulttjänster erbjuder dig en lösning för samdesign som kallas CodeSign SecureDu kan kontakta oss för att få tag på SigningKSP samt nyckelnamn. Samdesign med Github Actions är en enkel process. En användare behöver bara konfigurera löparen och köra ditt skript. Du kan kontakta oss på [e-postskyddad] för någon hjälp.