Cloud Code Signing-integration med Travis CI

Denne artikel viser, hvordan du kan udføre automatisk kodesignering på Travis CI ved at integrere eSigner CodeSignTool til din pipeline. 

eSigner er vores fjernkodesigneringsplatform, der giver det samme sikkerhedsniveau som USB-tokens og netværksbaseret HSMS, men på en mere effektiv og intuitiv måde.  En del af eSigner-værktøjssættet er CodeSignTool: et sikkert kommandolinjeværktøj, der er ideelt til at udføre virksomhedskodesignering i forskellige CI/CD-miljøer, herunder Travis.
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

Miljøvariabler

  • USERNAME: SSL.com konto brugernavn. (Påkrævet)
  • PASSWORD: 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)
  • ENVIRONMENT_NAME : 'TEST' eller 'PROD' miljø. (Påkrævet)

Indgange

  • input_file_path: Sti til kodeobjekt, der skal signeres. (Påkrævet)
  • output_dir_path: 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

Opret et projekt

Under projektet skal du oprette en fil til Travis

Definer komponenterne i arbejdsgangen

  1. Placer CPU-arkitekturen for at køre jobbet på

bue: amd64

  1. Standardsprog til at køre test i

sprog: java

  1. Angiv det operativsystem, du vil køre jobbet på

OS: linux

  1. Skriv den Ubuntu-distribution, der skal bruges

dist: bionisk

  1. Definer miljøvariabler globalt. Jobniveauegenskab tilsidesætter globale variabler.
  • Bemærk, at TERM=dumb kun er nødvendig for Gradle-projektforekomster.
  • Under ENVIRONMENT_NAME skal du placere "TEST" for testsignering og "PROD" for livesignering.

env:

  global:

    – PROJECT_NAME="HelloWorld"

    – PROJECT_VERSION="0.0.1"

    – TERM=dum

    – ENVIRONMENT_NAME="TEST"

  1. Angiv rækkefølgen af ​​stadier. Alle opgaver i én fase skal afsluttes, før den næste fase udføres.

niveauer:

  – bygge

  - skilt

Skitser byggefasen  

job:

  omfatte:

        – etape: bygge

  1. Jobnavnet

      navn: build-maven

  1. Ubuntu-distributionen, der skal bruges

      dist: bionisk

  1. Brug docker-kommando til underskrift  

      tjenester:

        – havnearbejder

  1. Brug dotnet-cli til at bygge projektet

      sprog: java

  1. Java-version til at bygge projektet

      JDK:

      – oraclejdk17

  1. Cache m2 bibliotek for at fremskynde

      cache:

        mapper:

        – $HJEM/.m2

  1. Skriv Før-scriptet, der skal køres, før du bygger projektet

      før_script:

        # Opret mapper til artefakter

        – mkdir -p ${TRAVIS_BUILD_DIR}/artifacts

        – mkdir -p ${TRAVIS_BUILD_DIR}/pakker

        # Indstil Maven-byggemuligheder

        – eksport MAVEN_CLI_OPTS=”–batch-mode –fejl –fail-at-end –show-version -DinstallAtEnd=true -DdeployAtEnd=true”

  1. Skriv manuskriptet til at bygge projektet.
  • I dette signeringseksempel-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.

      manuskript:

        # Byg Maven-projekt med Maven Options

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

         # Kopier byggede artefakter til artefakterbiblioteket

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

     

  1. Skitser, hvordan du angiver en liste over filer og mapper, der skal knyttes til jobbet, hvis det lykkes.

      arbejdsområder:

        skab:

          navn: maven-jar-artefakter

          stier:

            # Gem artefakt for at bruge signeringsjob

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

Skitser skiltstadiet

 – scene: tegn

  1. Skriv jobnavnet

      navn: sign-jar-fil

  1. Placer Ubuntu-distributionen til brug

      dist: bionisk

  1. Brug Docker-kommandoen til at signere  

      tjenester:

        – havnearbejder

     

  1. Definer miljøvariabler for specifikke job.
  • I skærmbilledet ovenfor blev sign-kommandoen defineret direkte i sign-scriptet og ikke under miljøvariabler. Both metoder kan signere korrekt med TravisCI.

      env:

        COMMAND = "tegn"

  1. Brug dotnet-cli til at bygge projektet

      sprog: java

  1. Java-version til at bygge projektet

      JDK:

      – oraclejdk17

  1. Før scriptet skal køres før projektet bygges

      før_script:

        # Opret mapper til artefakter

        – mkdir -p ${TRAVIS_BUILD_DIR}/artifacts

        – mkdir -p ${TRAVIS_BUILD_DIR}/pakker

     

  1. Script til at bygge projektet

      manuskript:

        # Docker Pull CodeSigner Docker-billede

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

        # Signer artefakt med CodeSigner Docker-billede

        – docker run -i –rm –dns 8.8.8.8 –netværksvært –volumen ${TRAVIS_BUILD_DIR}/packages:/codesign/examples

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

          -e BRUGERNAVN=${BRUGERNAVN} -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. Bruges til at angive en liste over filer og mapper, der skal knyttes til jobbet, hvis det lykkes.

      arbejdsområder:

        bruge:

          – maven-jar-artefakter

        skab:

          navn: signeret-jar-fil

          stier:

            # Gem signeret artefakt

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

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 miljøvariablerne

Gå til Travis og klik på Indstillinger .

Tilføj værdien for hver variabel

Rul ned til Miljøvariabler sektionen og klik på knappen Tilføj for at tilføje værdien for hver variabel

Opret en Github-repo

Se efter push-kommandoerne på Github

Skriv push-kommandoerne ved en terminal på din editor

Vent på, at byggejobbet er afsluttet

På Travis bør byggejobbet starte automatisk, efter du har trykket på koden.

Start kodesigneringsfasen

Klik på knappen underskrive sektion for KodeSignTool for at starte underskriftsprocessen

Vent på, at din virtuelle maskine er færdig med at starte op

Bekræft, om kodesignering er vellykket

Du kan henvise til SSL.com Github repository, som indeholder kildekoderne til docker-billedet og beskriver, hvordan man bruger det: https://github.com/SSLcom/ci-images

Prøve Travis CI Pipeline

Se prøven af ​​Travis CI-pipeline, vi har lavet på github.com/SSLcom/codesigner-travisci-sample

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

Abonner på SSL.coms nyhedsbrev

Gå ikke glip af nye artikler og opdateringer fra SSL.com

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.