SSL.com

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:

     - 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

 

         username: ${{secrets.ES_USERNAME}}

         password: ${{secrets.ES_PASSWORD}}

         credential_id: ${{secrets.CREDENTIAL_ID}}

         totp_secret: ${{secrets.ES_TOTP_SECRET}}

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

          output_path: ${GITHUB_WORKSPACE}/artifacts

 

Innganger

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

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

Gå ut av mobilversjonen