Cloud Code Signing-integrasjon med Travis CI

Denne artikkelen viser hvordan du kan utføre automatisert kodesignering på Travis CI ved å integrere eSigner CodeSignTool i pipelinen. 

eSigner er vår fjernkodesigneringsplattform som gir samme sikkerhetsnivå som USB-tokens og nettverksbasert HSMS, men på en mer effektiv og intuitiv måte.  En del av eSigner-verktøysettet er CodeSignTool: et sikkert kommandolinjeverktøy som er ideelt for å utføre bedriftskodesignering i forskjellige CI/CD-miljøer, inkludert Travis.
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Å

Miljøvariabler

  • USERNAME: 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)
  • ENVIRONMENT_NAME : 'TEST' eller 'PROD' miljø. (Obligatorisk)

Innganger

  • input_file_path: Banen til kodeobjektet som skal signeres. (Obligatorisk)
  • output_dir_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

Lag et prosjekt

Under prosjektet oppretter du en fil for Travis

Definer komponentene i arbeidsflyten

  1. Plasser CPU-arkitekturen for å kjøre jobben på

bue: amd64

  1. Standardspråk for å kjøre tester på

språk: java

  1. Angi operativsystemet du vil kjøre jobben på

OS: linux

  1. Skriv Ubuntu-distribusjonen som skal brukes

dist: bionisk

  1. Definer miljøvariabler globalt. Jobbnivåegenskap overstyrer globale variabler.
  • Vær oppmerksom på at TERM=dum bare er nødvendig for Gradle-prosjektforekomster.
  • Under ENVIRONMENT_NAME plasserer du «TEST» for testsignering og «PROD» for direktesignering.

env:

  global:

    – PROJECT_NAME="HelloWorld"

    – PROJECT_VERSION="0.0.1"

    – TERM=dum

    – ENVIRONMENT_NAME="TEST"

  1. Angi rekkefølgen på stadiene. Alle jobber i ett trinn må fullføres før neste trinn utføres.

stadier:

  - bygge

  – tegn

Skisser byggestadiet  

arbeidsplasser:

  inkluderer:

        – scene: bygge

  1. Jobbens navn

      navn: build-maven

  1. Ubuntu-distribusjonen som skal brukes

      dist: bionisk

  1. Bruk docker-kommando for signering  

      tjenester:

        – havnearbeider

  1. Bruk dotnet-cli for å bygge prosjektet

      språk: java

  1. Java-versjon for å bygge prosjektet

      jdk:

      – oraclejdk17

  1. Cache m2-katalogen for å øke hastigheten

      cache:

        kataloger:

        – $HOME/.m2

  1. Skriv Før-skriptet som skal kjøres før du bygger prosjektet

      før_skript:

        # Lag kataloger for artefakter

        – mkdir -p ${TRAVIS_BUILD_DIR}/artefakter

        – mkdir -p ${TRAVIS_BUILD_DIR}/pakker

        # Angi Maven byggealternativer

        – eksport MAVEN_CLI_OPTS=”–batch-modus –feil –fail-at-end –show-version -DinstallAtEnd=true -DdeployAtEnd=true”

  1. Skriv manuset for å bygge prosjektet.
  • I denne signeringseksempelarbeidsflyten ble flere prosjekttyper opprettet. 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.

      manus:

        # Bygg Maven-prosjekt med Maven Options

        – mvn $MAVEN_CLI_OPTS ren installasjon -f java/pom.xml

         # Kopier bygde artefakter til artefakterkatalogen

        – cp java/target/${PROJECT_NAME}-${PROJECT_VERSION}.jar ${TRAVIS_BUILD_DIR}/packages/${PROJECT_NAME}.jar

     

  1. Skisser hvordan du spesifiserer en liste over filer og kataloger som skal knyttes til jobben hvis den lykkes.

      arbeidsområder:

        skape:

          navn: maven-jar-artefakter

          baner:

            # Lagre artefakt for å bruke signeringsjobb

            – ${TRAVIS_BUILD_DIR}/pakker/${PROJECT_NAME}.jar

Skisser skiltstadiet

 – scene: tegn

  1. Skriv jobbnavnet

      navn: sign-jar-fil

  1. Plasser Ubuntu-distribusjonen som skal brukes

      dist: bionisk

  1. Bruk Docker-kommandoen for å signere  

      tjenester:

        – havnearbeider

     

  1. Definer miljøvariabler for spesifikke jobber.
  • I skjermbildet ovenfor ble skiltkommandoen definert direkte i skiltskriptet og ikke under miljøvariabler. Both metoder kan signere riktig med TravisCI.

      env:

        COMMAND = "sign"

  1. Bruk dotnet-cli for å bygge prosjektet

      språk: java

  1. Java-versjon for å bygge prosjektet

      jdk:

      – oraclejdk17

  1. Før skriptet skal kjøres før prosjektet bygges

      før_skript:

        # Lag kataloger for artefakter

        – mkdir -p ${TRAVIS_BUILD_DIR}/artefakter

        – mkdir -p ${TRAVIS_BUILD_DIR}/pakker

     

  1. Skript for å bygge prosjektet

      manus:

        # Docker Pull CodeSigner Docker Image

        – docker pull ghcr.io/sslcom/codesigner:latest

        # Signer artefakt med CodeSigner Docker-bilde

        – docker run -i –rm –dns 8.8.8.8 –nettverksvert –volum ${TRAVIS_BUILD_DIR}/packages:/codesign/examples

          –volum ${TRAVIS_BUILD_DIR}/artifacts:/codesign/output

          -e BRUKERNAVN=${USERNAME} -e PASSWORD=${PASSWORD} -e CREDENTIAL_ID=${CREDENTIAL_ID} -e TOTP_SECRET=${TOTP_SECRET}

          -e ENVIRONMENT_NAME=${ENVIRONMENT_NAME} ghcr.io/sslcom/codesigner:latest ${COMMAND}

          -input_file_path=/codesign/examples/${PROJECT_NAME}.jar -output_dir_path=/codesign/output

  1. Brukes til å angi en liste over filer og kataloger som skal knyttes til jobben hvis den lykkes.

      arbeidsområder:

        bruk:

          – maven-jar-artefakter

        skape:

          navn: signert-jar-fil

          baner:

            # Lagre signert artefakt

            – ${TRAVIS_BUILD_DIR}/artifacts/${PROJECT_NAME}.jar

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

Gå til Travis og klikk på innstillinger knapp

Legg til verdien for hver variabel

Rull ned til Miljøvariabler og klikk på Legg til-knappen for å legge til verdien for hver variabel

Opprett en Github-repo

Se etter push-kommandoene på Github

Skriv push-kommandoene på en terminal på editoren

Vent til byggejobben er fullført

På Travis skal byggejobben starte automatisk etter at du har presset koden.

Start kodesigneringsfasen

Klikk på undertegne seksjon for CodeSign Tool for å starte signeringsprosessen

Vent til den virtuelle maskinen er ferdig med oppstarten

Bekreft om kodesignering er vellykket

Du kan referere til SSL.com Github-depot som inneholder kildekodene til docker-bildet og beskriver hvordan du bruker det: https://github.com/SSLcom/ci-images

Prøve Travis CI Pipeline

Sjekk ut prøven Travis CI-pipeline vi har laget på github.com/SSLcom/codesigner-travisci-sample

Andre CI/CD-tjenesteveiledninger for 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.

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.