Cloud Code Signing-integration med GitHub Actions

Denne guideartikel demonstrerer, hvordan eSigner er integreret med GitHub Actions til automatiseret kodesignering i en kontinuerlig integration/kontinuerlig levering (CI/CD) opsætning.

eSigner er vores cloud-baserede signeringsplatform, der er betroet af softwareudviklere over hele verden til at udføre virksomhedskodesignering uden behov for USB-tokens eller anden specialiseret hardware.  En af eSigners komponenter er CodeSignTool: et privatlivsdrevet kommandolinjeværktøj, der er yderst effektivt for udviklere, der ønsker at automatisere kodesignering.  De følgende afsnit viser, hvordan du kan signere en Java-kode (Maven) på GitHub Actions ved hjælp af eSigner CodeSignTool.

SSL.com s EV Kodesignering certifikater hjælper med at beskytte din kode mod uautoriseret manipulation og gå på kompromis med det højeste niveau af validering og er tilgængelige for så lidt som $ 249 pr. Du kan også brug dit EV Code Signing-certifikat i stor skala i skyen ved hjælp af eSigner.

BESTIL NU

Brug

– navn: Signer artefakt med CodeSignTool

  anvendelser: sslcom/actions-codesigner@develop

  med:

  •      CodeSignTool-kommandoer:

     - get_credential_ids: Udskriv listen over eSigner-legitimations-id'er, der er knyttet til en bruger.

     - credential_info: Outputnøgle og certifikatoplysninger relateret til et legitimations-id.

     - sign: Kodeobjekt med tegn og tidsstempel.

     - batch_sign: Underskriv og tidsstempel flere kodeobjekter med en OTP.

     - hash: Forberegn hash(er) til senere brug med kommandoen batch_hash_sign.

     - batch_sign_hash: Signer hash(er) forudberegnet med hash-kommando.

        kommando: underskrive

 

  • SSL.com konto brugernavn.

         username: ${{secrets.ES_USERNAME}}

  •  SSL.com kontoadgangskode.

         password: ${{secrets.ES_PASSWORD}}

  • Legitimations-id til signering af certifikat.

         credential_id: ${{secrets.CREDENTIAL_ID}}

         totp_secret: ${{secrets.ES_TOTP_SECRET}}

  • Sti til kodeobjekt, der skal signeres.

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

  • Mappe, hvor signeret kodeobjekt(er) vil blive skrevet.

          output_path: ${GITHUB_WORKSPACE}/artifacts

 

Indgange

  • brugernavn: SSL.com konto brugernavn. (Påkrævet)
  • adgangskode: SSL.com kontoadgangskode (påkrævet)
  • credential_id: Legitimations-id til signering af certifikat. Hvis credential_id er udeladt, og brugeren kun har ét eSigner-kodesigneringscertifikat, vil CodeSignTool som standard være det. Hvis brugeren har mere end ét kodesigneringscertifikat, er denne parameter obligatorisk. (Påkrævet)
  • totp_secret: OAuth TOTP-hemmelighed. Du kan få adgang til detaljerede oplysninger om https://www.ssl.com/how-to/automate-esigner-ev-code-signing (Påkrævet)
  • filsti: Sti til kodeobjekt, der skal signeres. (Påkrævet)
  • output_sti: Bibliotek, hvor signeret kodeobjekt(er) vil blive skrevet. Hvis output_path er udeladt, vil filen specificeret i -file_path blive overskrevet med den signerede fil.

Java Code (Maven) JAR Signing Eksempel Workflow

Forbered komponenterne i arbejdsgangen

  1. Opret en Github-mappe på din editor. Inkluder arbejdsgange med mappen og opret en yml-fil under mappen.
    1. Navngiv dit projekt og den type arbejdsgang, der er involveret
    Navn: Maven Build and Sign
     
    1. Udløs denne arbejdsgang på et tryk
    på: skubbe
     
    1. Opret en miljøvariabel
    • Miljøvariabler bruges til at gøre prøverne mere læsbare. I skærmbilledet ovenfor af eksempelarbejdsgangen blev PROJECT_NAME, PROJECT_VERSION og MAVEN_VERSION eventuelt udeladt. Underskrivelsen kan stadig fortsætte selv med disse udeladelser.
    env: PROJECT_NAME: HelloWorld PROJECT_VERSION: 0.0.1 MAVEN_VERSION: 3.8.5 JAVA_VERSION: 17
     
    1. Definer jobs på din editor
    jobs: build-and-sign-jar:
     
    1. Kør job på Ubuntu Runner
        kører-på: ubuntu-nyeste
     
    1. Opret et navn. Når arbejdsgangen kører, er dette navnet, der logges.
      navn: CodeSigner på Java med Maven
     

Skitser trinene til at tjekke kildekoden, opsætte Java- og Maven-miljøet og oprette Artifact Directory.

  1) Tjek kildekoden, så arbejdsgangen kan få adgang til den.

   trin: - bruger: actions/checkout@v2
 

  2) Konfigurer Java- og Maven-miljøet, så arbejdsgangen kan bruges.

    - navn: Installer Maven og Java bruger: s4u/setup-maven-action@v1.3.1 med: java-version: '${{env.JAVA_VERSION}}' maven-version: '${{env.MAVEN_VERSION}}'

 

      3) Opret artefaktkatalog for at gemme signerede og usignerede artefaktfiler

 - navn: Opret mappeskal: bash run: | mkdir ${GITHUB_WORKSPACE}/artefakter mkdir ${GITHUB_WORKSPACE}/pakker

 

      4) Byg et maven-projekt eller -løsning og alle dets afhængigheder.

      Efter at jar-filen er blevet oprettet, kopieres til 'pakker'-mappen for at signere

  • I dette skriftlige underskriftseksempel workflow blev der oprettet flere projekttyper. Dette er grunden til, at filer af forskellige projekttyper blev opbevaret ved at oprette undermapper. En undermappe med navnet 'java' blev oprettet til Java-projekter. I demo-skærmbilledet ovenfor var der ikke behov for at oprette en undermappe ved navn 'java', så denne var ikke inkluderet i scriptet.
 - navn: Byg Java Project shell: 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}}. krukke
 

Skitser trinene for Sign- og Upload-jobbene

  1. Sign-jobbet er det trin, hvor de oprettede JAR-filer (artefakt) vil blive signeret med CodeSignTool.
 - navn: Sign Artifact bruger: sslcom/actions-codesigner@develop med:

           Tegn og tidsstempel kode objekt.

kommando: tegn

           SSL.com konto brugernavn.

brugernavn: ${{secrets.ES_USERNAME}}

           SSL.com kontoadgangskode.

adgangskode: ${{secrets.ES_PASSWORD}}

           Legitimations-id til signering af 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}}

           Sti til kodeobjekt, der skal signeres. (DLL, JAR, EXE, MSI filer vb...)

  file_path: ${GITHUB_WORKSPACE}/packages/${{env.PROJECT_NAME}}.jar

           Mappe, hvor signeret kodeobjekt(er) vil blive skrevet.

output_path: ${GITHUB_WORKSPACE}/artefakter

 

  1. Uploadjobbet er det trin, hvor artefakter fra din arbejdsgang vil blive uploadet, så du kan dele data mellem job og gemme data, når en arbejdsgang er fuldført
 - navn: Upload signerede filer bruger: actions/upload-artifact@v2 med: navn: ${{env.PROJECT_NAME}}.jar-sti: ./artifacts/${{env.PROJECT_NAME}}.jar
 

Få en build-artefakt-uploader fra Github Marketplace

Gennemgå dit kodningsscript

Alt i alt skal kodningsscriptet for buld-, sign- og upload-jobbene se ud som på billedet nedenfor. Sørg for at rette eventuelle fejl som f.eks. forkert stavning eller fejlagtige linjeskift i scriptet, så underskriftsprocessen kører problemfrit.

SSL.com s EV Kodesignering certifikater hjælper med at beskytte din kode mod uautoriseret manipulation og gå på kompromis med det højeste niveau af validering og er tilgængelige for så lidt som $ 249 pr. Du kan også brug dit EV Code Signing-certifikat i stor skala i skyen ved hjælp af eSigner.

BESTIL NU

Definer dine miljøvariabler

Gå til placeringen af ​​dit projekt på din Github-konto. Klik på handlinger fane. Klik på knappen Ny depothemmelighed knappen for at placere værdierne for hver miljøvariabel, der kræves for at signere din kode.

Opret et nyt lager på kommandolinjen

Fortsæt til placeringen af ​​dit projekt på Github og kopier hver komponent af push-kommandoen.

Skub projektet

Inkluder hver push-kommandolinje i din kodeeditor. Efter afslutning vil koden automatisk blive skubbet på Github.

Vent på, at artefakten er signeret med eSigner CodeSignTool

Upload den signerede fil

Klik på den signerede fil for at uploade den.

Bemærk: Sørg for at rette typografiske fejl eller fejlagtige linjeskift i scriptet, så underskriftsprocessen kører problemfrit.

Eksempel på Github Actions Pipeline


Tjek prøven af ​​Github Actions-pipeline, vi har oprettet på github.com/SSLcom/codesigner-github-sample  

Andre CI/CD Remote Signing Integration Guides

Brug for tilpassede løsninger? 

Med vores ekspertviden og femstjernede supportmedarbejdere er vi klar til og villige til at arbejde sammen med dig om skræddersyede løsninger eller store signeringsrabatter på virksomhedsniveau. Udfyld formularen nedenfor, så kontakter vi dig.

Hold dig informeret og sikker

SSL.com er en global leder inden for cybersikkerhed, PKI og digitale certifikater. Tilmeld dig for at modtage de seneste industrinyheder, tips og produktmeddelelser fra SSL.com.

Vi vil meget gerne have din feedback

Tag vores undersøgelse og fortæl os dine tanker om dit seneste køb.