Cloud Code Signing-integration med GitHub Actions

Den här guideartikeln visar hur eSigner är integrerad med GitHub Actions för automatiserad kodsignering i en konfiguration av kontinuerlig integration/kontinuerlig leverans (CI/CD).

eSigner är vår molnbaserade signeringsplattform som är betrodd av mjukvaruutvecklare över hela världen för att utföra företagskodsignering utan behov av USB-tokens eller annan specialiserad hårdvara.  En av eSigners komponenter är CodeSignTool: ett integritetsdrivet kommandoradsverktyg som är mycket effektivt för utvecklare som vill automatisera kodsignering.  Följande avsnitt visar hur du kan signera en Java-kod (Maven) på GitHub Actions med eSigner CodeSignTool.

SSL.com s EV Kodsignering certifikat hjälper till att skydda din kod från obehörig manipulering och kompromissa med den högsta nivån av validering, och är tillgängliga för så lite som $ 249 per år. Du kan också använd ditt EV Code Signing-certifikat i stor skala i molnet med eSigner.

BESTÄLL NU

Användning

- namn: Signera artefakt med CodeSignTool

  användningsområden: sslcom/actions-codesigner@develop

  med:

  •      CodeSignTool-kommandon:

     - get_credential_ids: Skriv ut listan över eSigner-id:n som är kopplade till en användare.

     - credential_info: Utmatningsnyckel och certifikatinformation relaterat till ett referens-ID.

     - sign: Tecken och tidsstämpel kodobjekt.

     - batch_sign: Signera och tidsstämpla flera kodobjekt med en OTP.

     - hash: Förberäkna hash(ar) för senare användning med kommandot batch_hash_sign.

     - batch_sign_hash: Signera hash(ar) förberäknad med hash-kommando.

        kommando: signera

 

  • Användarnamn för SSL.com-konto.

         username: ${{secrets.ES_USERNAME}}

  •  Lösenord för SSL.com-konto.

         password: ${{secrets.ES_PASSWORD}}

  • Autentiserings-ID för signering av certifikat.

         credential_id: ${{secrets.CREDENTIAL_ID}}

         totp_secret: ${{secrets.ES_TOTP_SECRET}}

  • Sökväg för kodobjekt som ska signeras.

          file_path: ${GITHUB_WORKSPACE}/test/src/build/HelloWorld.jar

  • Katalog där signerade kodobjekt kommer att skrivas.

          output_path: ${GITHUB_WORKSPACE}/artifacts

 

ingångar

  • Användarnamn: Användarnamn för SSL.com-konto. (Nödvändig)
  • Lösenord: Lösenord för SSL.com-konto (krävs)
  • credential_id: Autentiserings-ID för signering av certifikat. Om credential_id utelämnas och användaren bara har ett eSigner-kodsigneringscertifikat, kommer CodeSignTool att använda det som standard. Om användaren har mer än ett kodsigneringscertifikat är denna parameter obligatorisk. (Nödvändig)
  • totp_secret: OAuth TOTP-hemlighet. Du kan komma åt detaljerad information om https://www.ssl.com/how-to/automate-esigner-ev-code-signing (Nödvändig)
  • sökväg: Sökväg till kodobjekt som ska signeras. (Nödvändig)
  • utvägsflöde: Katalog där signerade kodobjekt kommer att skrivas. Om output_path utelämnas kommer filen som anges i -file_path att skrivas över med den signerade filen.

Java Code (Maven) JAR-signeringsexempel arbetsflöde

Förbered komponenterna i arbetsflödet

  1. Skapa en Github-mapp i din editor. Inkludera arbetsflöden med mappen och skapa en yml-fil under mappen.
    1. Namnge ditt projekt och vilken typ av arbetsflöde som ingår
    Namn: Maven Build and Sign
     
    1. Utlösa detta arbetsflöde på en push
    på: tryck
     
    1. Skapa en miljövariabel
    • Miljövariabler används för att göra proverna mer läsbara. I skärmdumpen ovan av exempelarbetsflödet utelämnades eventuellt PROJECT_NAME, PROJECT_VERSION och MAVEN_VERSION. Undertecknandet kan fortfarande fortsätta även med dessa utelämnanden.
    env: PROJECT_NAME: HelloWorld PROJECT_VERSION: 0.0.1 MAVEN_VERSION: 3.8.5 JAVA_VERSION: 17
     
    1. Definiera jobben på din editor
    jobb: build-and-sign-jar:
     
    1. Kör jobb på Ubuntu Runner
        runs-on: ubuntu-senaste
     
    1. Skapa ett namn. När arbetsflödet körs är detta namnet som loggas.
      namn: CodeSigner på Java med Maven
     

Beskriv stegen för att kolla källkoden, ställa in Java och Maven-miljön och skapa Artifact Directory.

  1) Kolla in källkoden så att arbetsflödet kan komma åt den.

   steg: - använder: actions/checkout@v2
 

  2) Ställ in Java och Maven-miljön för arbetsflödet att använda.

    - namn: Installera Maven och Java använder: s4u/setup-maven-action@v1.3.1 med: java-version: '${{env.JAVA_VERSION}}' maven-version: '${{env.MAVEN_VERSION}}'

 

      3) Skapa artefaktkatalog för att lagra signerade och osignerade artefaktfiler

 - namn: Skapa katalogskal: bash run: | mkdir ${GITHUB_WORKSPACE}/artefakter mkdir ${GITHUB_WORKSPACE}/paket

 

      4) Bygg ett maven-projekt eller -lösning och alla dess beroenden.

      Efter att jar-filen har skapats, kopiera till mappen "paket" för signering

  • I det här skriftliga signeringsexemplet skapades flera projekttyper. Det är därför filer av olika projekttyper behölls genom att skapa undermappar. En undermapp med namnet 'java' skapades för Java-projekt. I demoskärmdumpen ovan behövdes det inte skapa en undermapp med namnet 'java' så denna ingick inte i skriptet.
 - namn: Bygg Java-projektskal: bash run: | mvn clean install -f java/pom.xml cp java/target/${{env.PROJECT_NAME}}-${{env.PROJECT_VERSION}}.jar ${GITHUB_WORKSPACE}/packages/${{env.PROJECT_NAME}}. burk
 

Beskriv stegen för jobben Signera och Ladda upp

  1. Signeringsjobbet är steget där de skapade JAR-filerna (artefakt) kommer att signeras med CodeSignTool.
 - namn: Sign Artifact använder: sslcom/actions-codesigner@develop med:

           Tecken- och tidsstämpelkodobjekt.

kommando: tecken

           Användarnamn för SSL.com-konto.

användarnamn: ${{secrets.ES_USERNAME}}

           Lösenord för SSL.com-konto.

lösenord: ${{secrets.ES_PASSWORD}}

           Autentiserings-ID för signering av certifikat.

credential_id: ${{secrets.CREDENTIAL_ID}}

           OAuth TOTP Secret (https://www.ssl.com/how-to/automate-esigner-ev-code-signing)

totp_secret: ${{secrets.ES_TOTP_SECRET}}

           Sökväg för kodobjekt som ska signeras. (DLL, JAR, EXE, MSI-filer vb...)

  filsökväg: ${GITHUB_WORKSPACE}/paket/${{env.PROJECT_NAME}}.jar

           Katalog där signerade kodobjekt kommer att skrivas.

output_path: ${GITHUB_WORKSPACE}/artefakter

 

  1. Uppladdningsjobbet är steget där artefakter från ditt arbetsflöde kommer att laddas upp så att du kan dela data mellan jobb och lagra data när ett arbetsflöde är klart
 - namn: Ladda upp signerade filer använder: actions/upload-artifact@v2 med: namn: ${{env.PROJECT_NAME}}.jar sökväg: ./artifacts/${{env.PROJECT_NAME}}.jar
 

Skaffa ett uppladdningsverktyg för byggartefakter från Github Marketplace

Granska ditt kodningsskript

På det hela taget bör kodningsskriptet för buld-, signerings- och uppladdningsjobben se ut som bilden nedan. Se till att korrigera eventuella fel som felstavning eller felaktiga radbrytningar i skriptet så att signeringsprocessen går smidigt.

SSL.com s EV Kodsignering certifikat hjälper till att skydda din kod från obehörig manipulering och kompromissa med den högsta nivån av validering, och är tillgängliga för så lite som $ 249 per år. Du kan också använd ditt EV Code Signing-certifikat i stor skala i molnet med eSigner.

BESTÄLL NU

Definiera dina miljövariabler

Gå till platsen för ditt projekt på ditt Github-konto. Klicka på Handlingar flik. Klicka på Ny förvarshemlighet knappen för att placera värdena för varje miljövariabel som krävs för att signera din kod.

Skapa ett nytt arkiv på kommandoraden

Fortsätt till platsen för ditt projekt på Github och kopiera varje komponent i push-kommandot.

Tryck på projektet

Inkludera varje push-kommandorad i din kodredigerare. När det är klart kommer koden automatiskt att pushas på Github.

Vänta tills artefakten signeras med eSigner CodeSignTool

Ladda upp den signerade filen

Klicka på den signerade filen för att ladda upp den.

Obs: Se till att korrigera typografiska fel eller felaktiga radbrytningar i skriptet så att signeringsprocessen går smidigt.

Exempel på Github Actions Pipeline


Kolla in exempel på Github Actions pipeline vi har skapat på github.com/SSLcom/codesigner-github-sample  

Andra CI/CD-integrationsguider för fjärrsignering

Behöver du anpassade lösningar? 

Med vår expertkunskap och femstjärniga supportpersonal är vi redo och villiga att arbeta med dig på skräddarsydda lösningar eller rabatter på stora volymer av signering på företagsnivå. Fyll i formuläret nedan så hör vi av oss.

Prenumerera på SSL.coms nyhetsbrev

Missa inte nya artiklar och uppdateringar från SSL.com

Håll dig informerad och säker

SSL.com är en global ledare inom cybersäkerhet, PKI och digitala certifikat. Registrera dig för att få de senaste branschnyheterna, tipsen och produktmeddelanden från SSL.com.

Vi vill gärna ha din feedback

Följ vår undersökning och låt oss veta vad du tycker om ditt senaste köp.