Cloud Code Signing-integratie met Travis CI

Dit artikel laat zien hoe u geautomatiseerde code-ondertekening op Travis CI kunt uitvoeren door eSigner CodeSignTool te integreren in uw pijplijn. 

eSigner is ons platform voor het ondertekenen van codes op afstand dat hetzelfde beveiligingsniveau biedt als USB-tokens en netwerk-HSMS, maar op een efficiëntere en intuïtievere manier.  Onderdeel van de eSigner-toolkit is CodeSignTool: een veilig hulpprogramma voor de opdrachtregel dat ideaal is voor het ondertekenen van bedrijfscode in verschillende CI/CD-omgevingen, waaronder Travis.
SSL.com's EV Code ondertekening certificaten helpen uw code te beschermen tegen ongeautoriseerde manipulatie en compromittering met het hoogste validatieniveau, en zijn beschikbaar voor slechts $ 249 per jaar. Je kan ook gebruik uw EV Code Signing-certificaat op schaal in de cloud met eSigner.

BESTEL NU

Omgevingsvariabelen

  • USERNAME: gebruikersnaam van SSL.com-account. (Verplicht)
  • WACHTWOORD: SSL.com-accountwachtwoord (vereist)
  • CREDENTIAL_ID: Referentie-ID voor ondertekeningscertificaat. Als credential_id wordt weggelaten en de gebruiker slechts één eSigner-certificaat voor het ondertekenen van code heeft, zal CodeSignTool dat standaard gebruiken. Als de gebruiker meer dan één code-ondertekeningscertificaat heeft, is deze parameter verplicht. (Verplicht)
  • TOTP_GEHEIM: OAuth TOTP-geheim. U hebt toegang tot gedetailleerde informatie over: https://www.ssl.com/how-to/automate-esigner-ev-code-signing (Verplicht)
  • OMGEVING_NAME : 'TEST' of 'PROD' omgeving. (Verplicht)

Ingangen

  • invoer_bestandspad: Pad van codeobject dat moet worden ondertekend. (Verplicht)
  • output_dir_pad: Directory waar ondertekende code-object(en) zullen worden geschreven. Als output_path wordt weggelaten, wordt het bestand gespecificeerd in -file_path overschreven door het ondertekende bestand.

Java-code (Maven) JAR-ondertekeningsvoorbeeld workflow

Maak een project

Maak onder het project een bestand voor Travis

Definieer de componenten van de workflow

  1. Plaats de CPU-architectuur om de taak op uit te voeren

boog: amd64

  1. Standaardtaal om tests in uit te voeren

taal: java

  1. Geef het besturingssysteem op waarop de taak moet worden uitgevoerd

os: linux

  1. Schrijf de Ubuntu-distributie die zal worden gebruikt

dist: bionisch

  1. Definieer omgevingsvariabelen globaal. De eigenschap op taakniveau overschrijft globale variabelen.
  • Houd er rekening mee dat TERM=dom alleen nodig is voor Gradle-projectinstanties.
  • Plaats onder ENVIRONMENT_NAME "TEST" voor testondertekening en "PROD" voor liveondertekening.

omgeving:

  globaal:

    – PROJECT_NAME=”Hallo Wereld”

    – PROJECT_VERSION=”0.0.1″

    – TERM = dom

    – ENVIRONMENT_NAME=”TEST”

  1. Geef de volgorde van de fasen op. Alle taken in één fase moeten worden voltooid voordat de volgende fase wordt uitgevoerd.

stadia:

  – bouwen

  - teken

Geef een overzicht van de bouwfase  

banen:

  omvatten:

        – fase: bouwen

  1. De taaknaam

      naam: build-maven

  1. De te gebruiken Ubuntu-distributie

      dist: bionisch

  1. Gebruik het docker-commando om te ondertekenen  

      diensten:

        – havenarbeider

  1. Gebruik dotnet-cli om het project te bouwen

      taal: java

  1. Java-versie om het project te bouwen

      jdk:

      – orakeljdk17

  1. Cache m2-map om te versnellen

      cache:

        mappen:

        – $HUIS/.m2

  1. Schrijf het Before-script dat moet worden uitgevoerd voordat het project wordt gebouwd

      voor_script:

        # Maak mappen voor artefacten

        – mkdir -p ${TRAVIS_BUILD_DIR}/artefacten

        – mkdir -p ${TRAVIS_BUILD_DIR}/pakketten

        # Stel Maven-buildopties in

        – export MAVEN_CLI_OPTS=”–batch-modus –fouten –fail-at-end –show-version -DinstallAtEnd=true -DdeployAtEnd=true”

  1. Schrijf het script om het project te bouwen.
  • In deze ondertekeningsvoorbeeldworkflow zijn meerdere projecttypen gemaakt. Dit is de reden waarom bestanden van verschillende projecttypes werden bewaard door submappen te maken. Er is een submap met de naam 'java' gemaakt voor Java-projecten. In de demo-screenshot hierboven was het niet nodig om een ​​submap met de naam 'java' te maken, dus deze was niet opgenomen in het script.

      script:

        # Bouw Maven-project met Maven-opties

        – mvn $MAVEN_CLI_OPTS schone installatie -f java/pom.xml

         # Kopieer gebouwde artefacten naar de map met artefacten

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

     

  1. Geef aan hoe u een lijst met bestanden en mappen opgeeft die aan de taak moeten worden toegevoegd als deze slaagt.

      werkruimten:

        creëren:

          naam: maven-jar-artefacten

          paden:

            # Bewaar artefact om ondertekeningstaak te gebruiken

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

Geef een overzicht van de tekenfase

 – podium: teken

  1. Schrijf de functienaam

      naam: teken-jar-bestand

  1. Plaats de te gebruiken Ubuntu-distributie

      dist: bionisch

  1. Gebruik het Docker-commando om te ondertekenen  

      diensten:

        – havenarbeider

     

  1. Definieer omgevingsvariabelen voor specifieke taken.
  • In de bovenstaande schermafbeelding is de sign-opdracht rechtstreeks in het sign-script gedefinieerd en niet onder omgevingsvariabelen. Both methoden correct kunnen ondertekenen met TravisCI.

      omgeving:

        COMMAND="teken"

  1. Gebruik dotnet-cli om het project te bouwen

      taal: java

  1. Java-versie om het project te bouwen

      jdk:

      – orakeljdk17

  1. Voordat het script wordt uitgevoerd voordat het project wordt gebouwd

      voor_script:

        # Maak mappen voor artefacten

        – mkdir -p ${TRAVIS_BUILD_DIR}/artefacten

        – mkdir -p ${TRAVIS_BUILD_DIR}/pakketten

     

  1. Script om het project te bouwen

      script:

        # Docker Pull CodeSigner Docker-afbeelding

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

        # Onderteken artefact met CodeSigner Docker-afbeelding

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

          –volume ${TRAVIS_BUILD_DIR}/artefacts:/codesign/output

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

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

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

  1. Wordt gebruikt om een ​​lijst met bestanden en mappen op te geven die aan de taak moeten worden toegevoegd als deze slaagt.

      werkruimten:

        gebruiken:

          – maven-jar-artefacten

        creëren:

          naam: ondertekend-jar-bestand

          paden:

            # Bewaar ondertekend artefact

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

SSL.com's EV Code ondertekening certificaten helpen uw code te beschermen tegen ongeautoriseerde manipulatie en compromittering met het hoogste validatieniveau, en zijn beschikbaar voor slechts $ 249 per jaar. Je kan ook gebruik uw EV Code Signing-certificaat op schaal in de cloud met eSigner.

BESTEL NU

Definieer de omgevingsvariabelen

Ga naar Travis en klik op de Instellingen 

Voeg de waarde voor elke variabele toe

Blader omlaag naar de Omgevingsvariabelen sectie en klik op de knop Toevoegen om de waarde voor elke variabele toe te voegen

Maak een Github-repo

Zoek naar de push-commando's op Github

Schrijf de push-commando's op een terminal op je editor

Wacht tot de bouwtaak is voltooid

Op Travis zou de bouwtaak automatisch moeten starten nadat u de code hebt gepusht.

Start de code-ondertekeningsfase

Klik op de teken sectie voor CodeSignTool om het ondertekeningsproces te starten

Wacht tot je virtuele machine klaar is met opstarten

Bevestig of code-ondertekening succesvol is

U kunt verwijzen naar de SSL.com Github-repository die de broncodes van de docker-afbeelding bevat en beschrijft hoe deze te gebruiken: https://github.com/SSLcom/ci-images

Voorbeeld Travis CI-pijplijn

Bekijk de voorbeeld Travis CI-pijplijn waarop we hebben gemaakt github.com/SSLcom/codesigner-travisci-sample

Andere CI/CD Service Remote Signing Integration Guides

Oplossingen op maat nodig? 

Met onze deskundige kennis en vijfsterrenondersteuningspersoneel staan ​​we klaar en bereid om met u samen te werken aan aangepaste oplossingen of grote ondertekeningskortingen op ondernemingsniveau. Vul het onderstaande formulier in en we nemen contact met je op.

Abonneer u op de nieuwsbrief van SSL.com

Mis geen nieuwe artikelen en updates van SSL.com

Blijf geïnformeerd en veilig

SSL.com is een wereldleider op het gebied van cyberbeveiliging, PKI en digitale certificaten. Meld u aan om het laatste branchenieuws, tips en productaankondigingen te ontvangen van SSL.com.

We willen graag uw feedback

Vul onze enquête in en laat ons uw mening over uw recente aankoop weten.