Integrace cloudového podepisování kódu s akcemi GitHub

Tento článek průvodce ukazuje, jak je eSigner integrován s akcemi GitHub pro automatické podepisování kódu v nastavení Continuous Integration/Continuous Delivery (CI/CD).

eSigner je naše cloudová podepisovací platforma, které důvěřují vývojáři softwaru po celém světě, aby prováděla podepisování podnikového kódu bez potřeby USB tokenů nebo jiného specializovaného hardwaru.  Jednou z komponent eSigner je CodeSignTool: nástroj příkazového řádku řízený soukromím, který je vysoce účinný pro vývojáře, kteří chtějí automatizovat podepisování kódu.  Následující části ukazují, jak můžete podepsat kód Java (Maven) na akcích GitHub pomocí nástroje eSigner CodeSignTool.

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Ď

Používání

- název: Podepište artefakt pomocí CodeSignTool

  použití: sslcom/actions-codesigner@develop

  s:

  •      Příkazy CodeSignTool:

     - get_credential_ids: Výstup seznamu ID pověření eSigner přidružených k uživateli.

     - credential_info: Výstupní klíč a informace o certifikátu související s ID pověření.

     - sign: Objekt kódu podpisu a časového razítka.

     - batch_sign: Podepisování a časové razítko více objektů kódu pomocí jednoho OTP.

     - hash: Předpočítat hash(y) pro pozdější použití s ​​příkazem batch_hash_sign.

     - batch_sign_hash: Podepište hash(y) předem vypočítané pomocí příkazu hash.

        příkaz: podepsat

 

  • Uživatelské jméno účtu SSL.com.

         username: ${{secrets.ES_USERNAME}}

  •  Heslo účtu SSL.com.

         password: ${{secrets.ES_PASSWORD}}

  • ID pověření pro podpis certifikátu.

         credential_id: ${{secrets.CREDENTIAL_ID}}

         totp_secret: ${{secrets.ES_TOTP_SECRET}}

  • Cesta objektu kódu, který má být podepsán.

          file_path: ${GITHUB_WORKSPACE}/test/src/build/HelloWorld.jar

  • Adresář, kam budou zapsány podepsané objekty kódu.

          output_path: ${GITHUB_WORKSPACE}/artifacts

 

Vstupy

  • uživatelské jméno: 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é)
  • cesta_souboru: Cesta objektu kódu, který má být podepsán. (Požadované)
  • výstupní 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).

Připravte součásti pracovního postupu

  1. Ve svém editoru vytvořte složku Github. Zahrňte do složky pracovní postupy a vytvořte pod složkou soubor yml.
    1. Pojmenujte svůj projekt a typ pracovního postupu
    Název: Maven Build and Sign
     
    1. Spusťte tento pracovní postup pouhým stisknutím tlačítka
    na: tlačit
     
    1. Vytvořte proměnnou prostředí
    • Proměnné prostředí se používají k lepší čitelnosti vzorků. Na výše uvedeném snímku obrazovky příkladu pracovního postupu byly volitelně vynechány PROJECT_NAME, PROJECT_VERSION a MAVEN_VERSION. Podepisování může pokračovat i přes tato opomenutí.
    env: PROJECT_NAME: HelloWorld PROJECT_VERSION: 0.0.1 MAVEN_VERSION: 3.8.5 JAVA_VERSION: 17
     
    1. Definujte úlohy ve svém editoru
    úlohy: build-and-sign-jar:
     
    1. Spusťte úlohu na Ubuntu Runner
        run-on: ubuntu-latest
     
    1. Vytvořte jméno. Při spuštění pracovního postupu je toto jméno protokolováno.
      název: CodeSigner na Javě s Maven
     

Nastíněte kroky pro kontrolu zdrojového kódu, nastavení prostředí Java a Maven a vytvoření adresáře artefaktů.

  1) Podívejte se na zdrojový kód, aby k němu měl pracovní postup přístup.

   kroky: - používá: actions/checkout@v2
 

  2) Pro pracovní postup nastavte prostředí Java a Maven.

    - jméno: Instalovat Maven a Java používá: s4u/setup-maven-action@v1.3.1 s: java-version: '${{env.JAVA_VERSION}}' maven-version: '${{env.MAVEN_VERSION}}'

 

      3) Vytvořte adresář artefaktů pro ukládání podepsaných a nepodepsaných souborů artefaktů

 - jméno: Vytvořit Adresářový shell: bash spustit: | mkdir ${GITHUB_WORKSPACE}/artifacts mkdir ${GITHUB_WORKSPACE}/balíčky

 

      4) Vytvořte maven projekt nebo řešení a všechny jeho závislosti.

      Po vytvoření souboru jar zkopírujte do složky 'packages' pro podepsání

  • V tomto pracovním postupu písemného 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.
 - název: Build Java Project shell: bash spustit: | mvn čistá instalace -f java/pom.xml cp java/target/${{env.PROJECT_NAME}}-${{env.PROJECT_VERSION}}.jar ${GITHUB_WORKSPACE}/packages/${{env.PROJECT_NAME}}. sklenice
 

Nastiňte kroky pro úlohy Podepsat a Nahrát

  1. Úloha Sign je krok, kde budou vytvořené soubory JAR (artefakt) podepsány pomocí CodeSignTool.
 - jméno: Sign Artefakt používá: sslcom/actions-codesigner@develop with:

           Objekt kódu znaku a časového razítka.

příkaz: podepsat

           Uživatelské jméno účtu SSL.com.

uživatelské jméno: ${{secrets.ES_USERNAME}}

           Heslo účtu SSL.com.

heslo: ${{secrets.ES_PASSWORD}}

           ID pověření pro podpis certifikátu.

credential_id: ${{secrets.CREDENTIAL_ID}}

           OAuth TOTP Secret (https://www.ssl.com/how-to/automate-esigner-ev-code-signing)

totp_secret: ${{secrets.ES_TOTP_SECRET}}

           Cesta objektu kódu, který má být podepsán. (DLL, JAR, EXE, MSI soubory vb…)

  cesta k souboru: ${GITHUB_WORKSPACE}/packages/${{env.PROJECT_NAME}}.jar

           Adresář, kam budou zapsány podepsané objekty kódu.

output_path: ${GITHUB_WORKSPACE}/artifacts

 

  1. Úloha nahrávání je krok, kdy budou nahrány artefakty z vašeho pracovního postupu, což vám umožní sdílet data mezi úlohami a ukládat data po dokončení pracovního postupu.
 - název: Nahrát podepsané soubory používá: actions/upload-artifact@v2 with: name: ${{env.PROJECT_NAME}}.jar cesta: ./artifacts/${{env.PROJECT_NAME}}.jar
 

Získejte nástroj pro nahrávání artefaktů sestavení z Github Marketplace

Zkontrolujte svůj kódovací skript

Celý kódovací skript pro úlohy sestavení, podepsání a nahrání by měl vypadat jako na obrázku níže. Ujistěte se, že jste opravili všechny chyby, jako je nesprávný pravopis nebo chybné konce řádků ve skriptu, aby proces podepisování probíhal hladce.

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 své proměnné prostředí

Přejděte do umístění vašeho projektu na vašem účtu Github. Klikněte na Akce záložka. Klepněte na tlačítko Nové tajemství úložiště tlačítko pro umístění hodnot pro každou proměnnou prostředí vyžadovanou při podepisování vašeho kódu.

Vytvořte nové úložiště na příkazovém řádku

Pokračujte do umístění vašeho projektu na Github a zkopírujte každou komponentu příkazu push.

Pusťte projekt

Zahrňte každý příkazový řádek push do svého editoru kódu. Po dokončení bude kód automaticky odeslán na Github.

Počkejte, až bude artefakt podepsán pomocí nástroje eSigner CodeSignTool

Nahrajte podepsaný soubor

Kliknutím na podepsaný soubor jej nahrajete.

Poznámka: Ujistěte se, že jste ve skriptu opravili typografické chyby nebo chybné konce řádků, aby proces podepisování probíhal hladce.

Ukázkový kanál akcí Github


Podívejte se na ukázkový kanál Github Actions, na kterém jsme vytvořili github.com/SSLcom/codesigner-github-sample  

Další příručky pro integraci vzdáleného podepisování 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.