Cloud Code Signing-integration med Travis CI

Den här artikeln visar hur du kan utföra automatisk kodsignering på Travis CI genom att integrera eSigner CodeSignTool i din pipeline. 

eSigner är vår fjärrkodsigneringsplattform som ger samma säkerhetsnivå som USB-tokens och nätverksanslutna HSMS men på ett mer effektivt och intuitivt sätt.  En del av eSigner-verktygslådan är CodeSignTool: ett säkert kommandoradsverktyg som är idealiskt för att utföra företagskodsignering i olika CI/CD-miljöer inklusive Travis.
SSL.com s EV Kodsignering certifikat hjälper till att skydda din kod från obehörig manipulering och kompromissa med den högsta nivån av validering, och är tillgängliga för så lite som $ 249 per år. Du kan också använd ditt EV Code Signing-certifikat i stor skala i molnet med eSigner.

BESTÄLL NU

Miljövariabler

  • USERNAME: Användarnamn för SSL.com-konto. (Nödvändig)
  • LÖSENORD: Lösenord för SSL.com-konto (krävs)
  • CREDENTIAL_ID: Autentiserings-ID för signering av certifikat. Om credential_id utelämnas och användaren bara har ett eSigner-kodsigneringscertifikat, kommer CodeSignTool att använda det som standard. Om användaren har mer än ett kodsigneringscertifikat är denna parameter obligatorisk. (Nödvändig)
  • TOTP_SECRET: OAuth TOTP-hemlighet. Du kan komma åt detaljerad information om https://www.ssl.com/how-to/automate-esigner-ev-code-signing (Nödvändig)
  • ENVIRONMENT_NAME : 'TEST' eller 'PROD' miljö. (Nödvändig)

ingångar

  • input_file_path: Sökväg till kodobjekt som ska signeras. (Nödvändig)
  • output_dir_path: Katalog där signerade kodobjekt kommer att skrivas. Om output_path utelämnas kommer filen som anges i -file_path att skrivas över med den signerade filen.

Java Code (Maven) JAR-signeringsexempel arbetsflöde

Skapa ett projekt

Skapa en fil för Travis under projektet

Definiera komponenterna i arbetsflödet

  1. Placera CPU-arkitekturen för att köra jobbet på

båge: amd64

  1. Standardspråk för att köra tester på

språk: java

  1. Ange vilket operativsystem du vill köra jobbet på

OS: linux

  1. Skriv Ubuntu-distributionen som kommer att användas

dist: bionisk

  1. Definiera miljövariabler globalt. Jobbnivåegenskap åsidosätter globala variabler.
  • Observera att TERM=dumb endast behövs för Gradle-projektinstanser.
  • Under ENVIRONMENT_NAME placerar du "TEST" för testsignering och "PROD" för livesignering.

env:

  global:

    – PROJECT_NAME="HelloWorld"

    – PROJECT_VERSION="0.0.1"

    – TERM=dum

    – ENVIRONMENT_NAME=”TEST”

  1. Ange ordningen på stegen. Alla jobb i ett steg måste slutföras innan nästa steg utförs.

steg:

  – bygga

  - tecken

Beskriv byggstadiet  

jobb:

  innefattar:

        – etapp: bygga

  1. Jobbets namn

      namn: build-maven

  1. Ubuntu-distributionen att använda

      dist: bionisk

  1. Använd docker-kommandot för att signera  

      tjänster:

        – hamnarbetare

  1. Använd dotnet-cli för att bygga projektet

      språk: java

  1. Java-version för att bygga projektet

      jdk:

      – oraclejdk17

  1. Cache m2-katalogen för att snabba upp

      cache:

        kataloger:

        – $HOME/.m2

  1. Skriv före-skriptet som ska köras innan du bygger projektet

      före_skript:

        # Skapa kataloger för artefakter

        – mkdir -p ${TRAVIS_BUILD_DIR}/artefakter

        – mkdir -p ${TRAVIS_BUILD_DIR}/paket

        # Ställ in Maven-byggalternativ

        – export MAVEN_CLI_OPTS=”–batch-mode –errors –fail-at-end –show-version -DinstallAtEnd=true -DdeployAtEnd=true”

  1. Skriv manuset för att bygga projektet.
  • I detta arbetsflöde för signeringsexempel skapades flera projekttyper. Det är därför filer av olika projekttyper behölls genom att skapa undermappar. En undermapp med namnet 'java' skapades för Java-projekt. I demoskärmdumpen ovan behövdes det inte skapa en undermapp med namnet 'java' så denna ingick inte i skriptet.

      manus:

        # Bygg Maven-projekt med Maven Options

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

         # Kopiera byggda artefakter till artefakterkatalogen

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

     

  1. Beskriv hur du anger en lista över filer och kataloger som ska bifogas jobbet om det lyckas.

      arbetsytor:

        skapa:

          namn: maven-jar-artefakter

          vägar:

            # Spara artefakt för att använda signeringsjobb

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

Skissera skyltstadiet

 – scen: tecken

  1. Skriv jobbnamnet

      namn: sign-jar-fil

  1. Placera Ubuntu-distributionen att använda

      dist: bionisk

  1. Använd Docker-kommandot för att signera  

      tjänster:

        – hamnarbetare

     

  1. Definiera miljövariabler för specifika jobb.
  • I skärmdumpen ovan definierades teckenkommandot direkt i teckenskriptet och inte under miljövariabler. Both metoder kan signera korrekt med TravisCI.

      env:

        COMMAND=”tecken”

  1. Använd dotnet-cli för att bygga projektet

      språk: java

  1. Java-version för att bygga projektet

      jdk:

      – oraclejdk17

  1. Innan manuset ska köras innan man bygger projektet

      före_skript:

        # Skapa kataloger för artefakter

        – mkdir -p ${TRAVIS_BUILD_DIR}/artefakter

        – mkdir -p ${TRAVIS_BUILD_DIR}/paket

     

  1. Skript för att bygga projektet

      manus:

        # Docker Pull CodeSigner Docker Image

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

        # Signera artefakt med CodeSigner Docker-bild

        – docker run -i –rm –dns 8.8.8.8 –nätverksvärd –volym ${TRAVIS_BUILD_DIR}/packages:/codesign/examples

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

          -e ANVÄNDARNAMN=${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. Används för att ange en lista över filer och kataloger som ska bifogas jobbet om det lyckas.

      arbetsytor:

        användning:

          – maven-jar-artefakter

        skapa:

          namn: signerad-jar-fil

          vägar:

            # Spara signerad artefakt

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

SSL.com s EV Kodsignering certifikat hjälper till att skydda din kod från obehörig manipulering och kompromissa med den högsta nivån av validering, och är tillgängliga för så lite som $ 249 per år. Du kan också använd ditt EV Code Signing-certifikat i stor skala i molnet med eSigner.

BESTÄLL NU

Definiera miljövariabler

Gå till Travis och klicka på Inställningar Knappen

Lägg till värdet för varje variabel

Bläddra ner till Miljövariabler och klicka på knappen Lägg till för att lägga till värdet för varje variabel

Skapa en Github-repo

Leta efter push-kommandona på Github

Skriv push-kommandona vid en terminal på din editor

Vänta tills byggjobbet är klart

På Travis bör byggjobbet starta automatiskt efter att du har tryckt på koden.

Initiera kodsigneringssteget

Klicka på signera avsnitt för CodeSign Tool för att starta signeringsprocessen

Vänta tills din virtuella maskin startar upp

Bekräfta om kodsignering är framgångsrik

Du kan hänvisa till SSL.com Github repository som innehåller källkoderna för docker-bilden och beskriver hur man använder den: https://github.com/SSLcom/ci-images

Prov Travis CI Pipeline

Kolla in exempel på Travis CI-pipeline vi har skapat på github.com/SSLcom/codesigner-travisci-sample

Andra CI/CD Service Remote Signing Integration Guides

Behöver du anpassade lösningar? 

Med vår expertkunskap och femstjärniga supportpersonal är vi redo och villiga att arbeta med dig på skräddarsydda lösningar eller rabatter på stora volymer av signering på företagsnivå. Fyll i formuläret nedan så hör vi av oss.

Håll dig informerad och säker

SSL.com är en global ledare inom cybersäkerhet, PKI och digitala certifikat. Registrera dig för att få de senaste branschnyheterna, tipsen och produktmeddelanden från SSL.com.

Vi vill gärna ha din feedback

Följ vår undersökning och låt oss veta vad du tycker om ditt senaste köp.