Integrace cloudového podepisování kódu s Travis CI

Tento článek ukazuje, jak můžete provádět automatické podepisování kódu na Travis CI integrací eSigner CodeSignTool do vašeho kanálu. 

eSigner je naše platforma pro vzdálené podepisování kódu, která poskytuje stejnou úroveň zabezpečení jako USB tokeny a síťové HSMS, ale efektivnější a intuitivnější.  Součástí sady nástrojů eSigner je CodeSignTool: zabezpečený nástroj příkazového řádku, který je ideální pro provádění podnikového podepisování kódu v různých prostředích CI/CD včetně Travis.
SSL.com EV Podepisování kódu certifikáty pomáhají chránit váš kód před neoprávněnou manipulací a kompromitací s nejvyšší úrovní ověření a jsou k dispozici za pouhých $ 249 za rok. Můžete také používejte certifikát EV Code Signing ve velkém měřítku v cloudu pomocí eSigner.

OBJEDNAT TEĎ

Proměnné prostředí

  • USERNAME: Uživatelské jméno účtu SSL.com. (Požadované)
  • HESLO: Heslo účtu SSL.com (vyžadováno)
  • CREDENTIAL_ID: ID pověření pro podpisový certifikát. Pokud je credential_id vynecháno a uživatel má pouze jeden certifikát pro podpis kódu eSigner, CodeSignTool jej použije jako výchozí. Pokud má uživatel více než jeden certifikát pro podpis kódu, je tento parametr povinný. (Požadované)
  • TOTP_SECRET: Tajné OAuth TOTP. Podrobné informace získáte na https://www.ssl.com/how-to/automate-esigner-ev-code-signing (Povinné)
  • ENVIRONMENT_NAME : Prostředí 'TEST' nebo 'PROD'. (Požadované)

Vstupy

  • cesta k vstupnímu_souboru: Cesta objektu kódu, který má být podepsán. (Požadované)
  • výstupní_adresář_cesta: Adresář, do kterého budou zapsány podepsané objekty kódu. Pokud je výstupní_cesta vynechána, soubor zadaný v -file_path bude přepsán podepsaným souborem.

Příklad pracovního postupu podepisování JAR kódu Java (Maven).

Vytvořte projekt

Pod projektem vytvořte soubor pro Travis

Definujte součásti pracovního postupu

  1. Umístěte architekturu CPU ke spuštění úlohy

oblouk: amd64

  1. Výchozí jazyk pro spuštění testů

jazyk: java

  1. Zadejte operační systém, na kterém se má úloha spustit

os: linux

  1. Napište distribuci Ubuntu, která bude použita

dist: bionický

  1. Definujte proměnné prostředí globálně. Vlastnost na úrovni úlohy přepíše globální proměnné.
  • Vezměte na vědomí, že TERM=dumb je potřeba pouze pro instance projektu Gradle.
  • V části ENVIRONMENT_NAME umístěte „TEST“ pro testovací podepisování a „PROD“ pro živé podepisování.

env:

  globální:

    – PROJECT_NAME=”HelloWorld”

    – PROJECT_VERSION=”0.0.1″

    – TERM=hloupý

    – ENVIRONMENT_NAME=”TEST”

  1. Určete pořadí fází. Všechny úlohy v jedné fázi musí být dokončeny před provedením další fáze.

etapy:

  - stavět

  - podepsat

Načrtněte fázi výstavby  

pracovní místa:

  patří:

        – etapa: stavět

  1. Název práce

      jméno: build-maven

  1. Distribuce Ubuntu k použití

      dist: bionický

  1. Pro podepisování použijte příkaz docker  

      služby:

        – přístavník

  1. K vytvoření projektu použijte dotnet-cli

      jazyk: java

  1. Java verze pro sestavení projektu

      jdk:

      – oraclejdk17

  1. Pro urychlení uložte do mezipaměti adresář m2

      cache:

        adresáře:

        – $HOME/.m2

  1. Napište skript Before, který se má spustit před vytvořením projektu

      before_script:

        # Vytvořte adresáře pro artefakty

        – mkdir -p ${TRAVIS_BUILD_DIR}/artefakty

        – mkdir -p ${TRAVIS_BUILD_DIR}/balíčky

        # Nastavte možnosti sestavení Maven

        – export MAVEN_CLI_OPTS=”–dávkový režim –chyby –fail-at-end –show-version -DinstallAtEnd=true -DdeployAtEnd=true”

  1. Napište skript pro vytvoření projektu.
  • V tomto pracovním postupu příkladu podepisování bylo vytvořeno několik typů projektů. To je důvod, proč byly soubory různých typů projektů udržovány vytvořením podsložek. Pro projekty Java byla vytvořena podsložka s názvem 'java'. Na ukázkovém snímku obrazovky výše nebylo nutné vytvářet podsložku s názvem „java“, takže to nebylo součástí skriptu.

      skript:

        # Vybudujte projekt Maven s možnostmi Maven

        – mvn $MAVEN_CLI_OPTS čistá instalace -f java/pom.xml

         # Zkopírujte vytvořené artefakty do adresáře artefaktů

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

     

  1. Nastínit, jak zadat seznam souborů a adresářů, které by měly být připojeny k úloze, pokud bude úspěšná.

      pracovní prostory:

        vytvořit:

          název: maven-jar-artifacts

          cesty:

            # Uložte artefakt, abyste mohli použít úlohu podepisování

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

Nastínit fázi znamení

 – etapa: sign

  1. Napište název práce

      jméno: sign-jar-file

  1. Umístěte distribuci Ubuntu k použití

      dist: bionický

  1. Pro podepisování použijte příkaz Docker  

      služby:

        – přístavník

     

  1. Definujte proměnné prostředí pro konkrétní úlohy.
  • Na výše uvedeném snímku obrazovky byl příkaz sign definován přímo ve skriptu sign a nikoli pod proměnnými prostředí. Both metody se mohou správně podepsat pomocí TravisCI.

      env:

        COMMAND = "podepsat"

  1. K vytvoření projektu použijte dotnet-cli

      jazyk: java

  1. Java verze pro sestavení projektu

      jdk:

      – oraclejdk17

  1. Před spuštěním skriptu před vytvořením projektu

      before_script:

        # Vytvořte adresáře pro artefakty

        – mkdir -p ${TRAVIS_BUILD_DIR}/artefakty

        – mkdir -p ${TRAVIS_BUILD_DIR}/balíčky

     

  1. Skript pro sestavení projektu

      skript:

        # Obrázek Docker Pull CodeSigner Docker

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

        # Podepište artefakt pomocí obrázku CodeSigner Docker

        – docker run -i –rm –dns 8.8.8.8 –hostitel sítě –volume ${TRAVIS_BUILD_DIR}/packages:/codesign/examples

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

          -e USERNAME=${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. Používá se k určení seznamu souborů a adresářů, které by měly být připojeny k úloze, pokud bude úspěšná.

      pracovní prostory:

        použití:

          – maven-jar-artefakty

        vytvořit:

          jméno: podepsaný-jar-soubor

          cesty:

            # Uložte podepsaný artefakt

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

SSL.com EV Podepisování kódu certifikáty pomáhají chránit váš kód před neoprávněnou manipulací a kompromitací s nejvyšší úrovní ověření a jsou k dispozici za pouhých $ 249 za rok. Můžete také používejte certifikát EV Code Signing ve velkém měřítku v cloudu pomocí eSigner.

OBJEDNAT TEĎ

Definujte proměnné prostředí

Přejděte na Travis a klikněte na Nastavení tlačítko

Přidejte hodnotu pro každou proměnnou

Přejděte dolů na Proměnné prostředí a kliknutím na tlačítko Přidat přidejte hodnotu pro každou proměnnou

Vytvořte repozitář Github

Hledejte příkazy push na Github

Zapište příkazy push na terminál ve svém editoru

Počkejte na dokončení úlohy sestavení

Na Travisu by se úloha sestavení měla spustit automaticky po vložení kódu.

Zahajte fázi podepisování kódu

Klepněte na tlačítko podepsat sekce pro CodeSignTool k zahájení procesu podepisování

Počkejte, až váš virtuální počítač dokončí bootování

Potvrďte, zda bylo podepsání kódu úspěšné

Můžete se obrátit na SSL.com Repozitář Github, který obsahuje zdrojové kódy obrazu dockeru a popisuje, jak jej používat: https://github.com/SSLcom/ci-images

Ukázka Travis CI Pipeline

Podívejte se na ukázku potrubí Travis CI, na kterém jsme vytvořili github.com/SSLcom/codesigner-travisci-sample

Další příručky integrace vzdáleného podepisování služby CI/CD

Potřebujete vlastní řešení? 

S našimi odbornými znalostmi a pětihvězdičkovým podpůrným personálem jsme připraveni a ochotni s vámi spolupracovat na vlastních řešeních nebo slevách na velkoobjemové podpisy na podnikové úrovni. Vyplňte formulář níže a my se vám ozveme.

Přihlaste se k odběru zpravodaje SSL.com

Nenechte si ujít nové články a aktualizace z SSL.com

Zůstaňte informováni a zabezpečte se

SSL.com je světovým lídrem v oblasti kybernetické bezpečnosti, PKI a digitální certifikáty. Přihlaste se k odběru nejnovějších zpráv z oboru, tipů a oznámení o produktech SSL.com.

Budeme rádi za vaši zpětnou vazbu

Vyplňte náš průzkum a sdělte nám svůj názor na váš nedávný nákup.