Cloud Code Signing-integrasjon med GitHub Actions

Denne veiledningsartikkelen viser hvordan eSigner er integrert med GitHub Actions for automatisert kodesignering i et kontinuerlig integrasjon/kontinuerlig levering (CI/CD) oppsett.

eSigner er vår skybaserte signeringsplattform som er klarert av programvareutviklere over hele verden for å utføre bedriftskodesignering uten behov for USB-tokens eller annen spesialisert maskinvare.  En av eSigners komponenter er CodeSignTool: et personverndrevet kommandolinjeverktøy som er svært effektivt for utviklere som ønsker å automatisere kodesignering.  De følgende delene viser hvordan du kan signere en Java-kode (Maven) på GitHub Actions ved å bruke eSigner CodeSignTool.

SSL.coms EV Kodesignering sertifikater bidrar til å beskytte koden din mot uautorisert tukling og kompromiss med det høyeste nivået av validering, og er tilgjengelige for så lite som $ 249 per år. Du kan også bruk EV Code Signing-sertifikatet i stor skala i skyen ved hjelp av eSigner.

BESTILL NÅ

bruk

- Navn: Signer artefakt med CodeSignTool

  bruksområder: sslcom/actions-codesigner@develop

  med:

  •      CodeSignTool-kommandoer:

     - get_credential_ids: Skriv ut listen over eSigner-legitimasjons-ID-er knyttet til en bruker.

     - credential_info: Utgangsnøkkel og sertifikatinformasjon relatert til en legitimasjons-ID.

     - sign: Kodeobjekt for tegn og tidsstempel.

     - batch_sign: Signer og tidsstempler flere kodeobjekter med en OTP.

     - hash: Forhåndsberegn hash(er) for senere bruk med kommandoen batch_hash_sign.

     - batch_sign_hash: Signer hash(er) forhåndsberegnet med hash-kommando.

        kommando: undertegne

 

  • SSL.com-konto brukernavn.

         username: ${{secrets.ES_USERNAME}}

  •  SSL.com-kontopassord.

         password: ${{secrets.ES_PASSWORD}}

  • Legitimasjons-ID for signering av sertifikat.

         credential_id: ${{secrets.CREDENTIAL_ID}}

         totp_secret: ${{secrets.ES_TOTP_SECRET}}

  • Banen til kodeobjektet som skal signeres.

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

  • Katalog hvor signert kodeobjekt(er) vil bli skrevet.

          output_path: ${GITHUB_WORKSPACE}/artifacts

 

Innganger

  • brukernavn: SSL.com-konto brukernavn. (Obligatorisk)
  • passord: SSL.com-kontopassord (påkrevd)
  • credential_id: Legitimasjons-ID for signering av sertifikat. Hvis credential_id er utelatt og brukeren bare har ett eSigner-kodesigneringssertifikat, vil CodeSignTool som standard bruke det. Hvis brukeren har mer enn ett kodesigneringssertifikat, er denne parameteren obligatorisk. (Obligatorisk)
  • totp_secret: OAuth TOTP-hemmelighet. Du kan få tilgang til detaljert informasjon om https://www.ssl.com/how-to/automate-esigner-ev-code-signing (Nødvendig)
  • filsti: Banen til kodeobjektet som skal signeres. (Obligatorisk)
  • output_path: Katalog hvor signert kodeobjekt(er) vil bli skrevet. Hvis output_path er utelatt, vil filen spesifisert i -file_path bli overskrevet med den signerte filen.

Java Code (Maven) JAR-signeringseksempel arbeidsflyt

Forbered komponentene i arbeidsflyten

  1. Opprett en Github-mappe på editoren din. Inkluder arbeidsflyter med mappen og lag en yml-fil under mappen.
    1. Navngi prosjektet og typen arbeidsflyt som er involvert
    Navn: Maven Bygg og Sign
     
    1. Utløs denne arbeidsflyten på et trykk
    på: trykk
     
    1. Lag en miljøvariabel
    • Miljøvariabler brukes for å gjøre prøvene mer lesbare. I skjermbildet ovenfor av eksempelarbeidsflyten ble PROJECT_NAME, PROJECT_VERSION og MAVEN_VERSION eventuelt utelatt. Signering kan fortsatt fortsette selv med disse utelatelsene.
    env: PROJECT_NAME: HelloWorld PROJECT_VERSION: 0.0.1 MAVEN_VERSION: 3.8.5 JAVA_VERSION: 17
     
    1. Definer jobbene på redaktøren din
    jobber: bygge-og-sign-jar:
     
    1. Kjør jobb på Ubuntu Runner
        kjører på: ubuntu-nyeste
     
    1. Lag et navn. Når arbeidsflyten kjører, er dette navnet som logges.
      navn: CodeSigner på Java med Maven
     

Skisser trinnene for å sjekke ut kildekoden, sette opp Java- og Maven-miljøet og lage Artifact Directory.

  1) Sjekk ut kildekoden slik at arbeidsflyten får tilgang til den.

   trinn: - bruker: actions/checkout@v2
 

  2) Sett opp Java og Maven-miljøet for arbeidsflyten som skal brukes.

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

 

      3) Opprett artefaktkatalog for å lagre signerte og usignerte artefaktfiler

 - navn: Opprett katalogskall: bash run: | mkdir ${GITHUB_WORKSPACE}/artefakter mkdir ${GITHUB_WORKSPACE}/pakker

 

      4) Bygg et maven-prosjekt eller -løsning og alle dets avhengigheter.

      Etter at jar-filen er opprettet, kopierer du til 'packages'-mappen for signering

  • I denne skriftlige signeringseksemplet ble det opprettet flere prosjekttyper. Dette er grunnen til at filer av forskjellige prosjekttyper ble beholdt ved å opprette undermapper. En undermappe kalt 'java' ble opprettet for Java-prosjekter. I demoskjermbildet ovenfor var det ikke nødvendig å opprette en undermappe kalt 'java', så dette var ikke inkludert i skriptet.
 - navn: Bygg Java-prosjektskall: 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
 

Skisser fremgangsmåten for Sign- og Last opp-jobbene

  1. Sign-jobben er trinnet der de opprettede JAR-filene (artefakt) blir signert med CodeSignTool.
 - navn: Sign Artifact bruker: sslcom/actions-codesigner@develop med:

           Tegn- og tidsstempelkodeobjekt.

kommando: tegn

           SSL.com-konto brukernavn.

brukernavn: ${{secrets.ES_USERNAME}}

           SSL.com-kontopassord.

passord: ${{secrets.ES_PASSWORD}}

           Legitimasjons-ID for signering av sertifikat.

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}}

           Banen til kodeobjektet som skal signeres. (DLL, JAR, EXE, MSI-filer vb...)

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

           Katalog hvor signert kodeobjekt(er) vil bli skrevet.

output_path: ${GITHUB_WORKSPACE}/artefakter

 

  1. Opplastingsjobben er trinnet der artefakter fra arbeidsflyten din blir lastet opp slik at du kan dele data mellom jobber og lagre data når en arbeidsflyt er fullført
 - navn: Last opp signerte filer bruker: actions/upload-artifact@v2 med: navn: ${{env.PROJECT_NAME}}.jar bane: ./artifacts/${{env.PROJECT_NAME}}.jar
 

Få en byggeartefakt-opplasting fra Github Marketplace

Se gjennom kodingsskriptet ditt

Alt i alt skal kodingsskriptet for buld-, signerings- og opplastingsjobbene se ut som bildet nedenfor. Sørg for å korrigere eventuelle feil som feilstaving eller feilaktige linjeskift i skriptet, slik at signeringsprosessen går jevnt.

SSL.coms EV Kodesignering sertifikater bidrar til å beskytte koden din mot uautorisert tukling og kompromiss med det høyeste nivået av validering, og er tilgjengelige for så lite som $ 249 per år. Du kan også bruk EV Code Signing-sertifikatet i stor skala i skyen ved hjelp av eSigner.

BESTILL NÅ

Definer miljøvariablene dine

Gå til plasseringen av prosjektet på Github-kontoen din. Klikk på handlinger fane. Klikk på Ny depothemmelighet for å plassere verdiene for hver miljøvariabel som kreves for å signere koden.

Opprett et nytt depot på kommandolinjen

Fortsett til plasseringen av prosjektet ditt på Github og kopier hver komponent i push-kommandoen.

Skyv prosjektet

Inkluder hver push-kommandolinje i koderedigeringsprogrammet. Etter fullføring vil koden automatisk bli presset på Github.

Vent til artefakten skal signeres med eSigner CodeSignTool

Last opp den signerte filen

Klikk på den signerte filen for å laste den opp.

Merk: Sørg for å korrigere typografiske feil eller feilaktige linjeskift i skriptet slik at signeringsprosessen går jevnt.

Eksempel på Github Actions Pipeline


Sjekk ut prøven Github Actions-pipeline vi har laget på github.com/SSLcom/codesigner-github-sample  

Andre veiledninger for integrasjon av CI/CD-fjernsignering

Trenger du tilpassede løsninger? 

Med vår ekspertkunnskap og femstjerners støttepersonell er vi klare og villige til å samarbeide med deg om tilpassede løsninger eller store signeringsrabatter på bedriftsnivå. Fyll ut skjemaet under så tar vi kontakt.

Abonner på SSL.coms nyhetsbrev

Ikke gå glipp av nye artikler og oppdateringer fra SSL.com

Hold deg informert og sikker

SSL.com er en global leder innen cybersikkerhet, PKI og digitale sertifikater. Registrer deg for å motta de siste bransjenyhetene, tipsene og produktkunngjøringene fra SSL.com.

Vi vil gjerne ha tilbakemeldinger

Ta vår spørreundersøkelse og fortell oss dine tanker om ditt nylige kjøp.