en English
X

Select Language

Powered by Google TranslateTranslate

We hope you will find the Google translation service helpful, but we don’t promise that Google’s translation will be accurate or complete. You should not rely on Google’s translation. English is the official language of our site.

en English
X

Select Language

Powered by Google TranslateTranslate

We hope you will find the Google translation service helpful, but we don’t promise that Google’s translation will be accurate or complete. You should not rely on Google’s translation. English is the official language of our site.

Integratie van Cloud Code Signing met GitHub-acties

Dit gidsartikel laat zien hoe eSigner is geïntegreerd met GitHub Actions voor geautomatiseerde code-ondertekening in een Continuous Integration/Continuous Delivery (CI/CD)-configuratie.

eSigner is ons cloudgebaseerde ondertekeningsplatform dat wordt vertrouwd door softwareontwikkelaars over de hele wereld voor het ondertekenen van bedrijfscodes zonder dat USB-tokens of andere gespecialiseerde hardware nodig zijn.  Een van de componenten van eSigner is CodeSignTool: een op privacy gebaseerd hulpprogramma voor de opdrachtregel dat zeer effectief is voor ontwikkelaars die het ondertekenen van code willen automatiseren.  De volgende secties laten zien hoe u een Java-code (Maven) op GitHub Actions kunt ondertekenen met eSigner CodeSignTool.

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

Gebruik

- naam: Artefact ondertekenen met CodeSignTool

  toepassingen: sslcom/actions-codesigner@develop

  met:

  •      CodeSignTool-opdrachten:

     - get_credential_ids: Voer de lijst uit met eSigner-referentie-ID's die aan een gebruiker zijn gekoppeld.

     - credential_info: Uitvoersleutel en certificaatinformatie met betrekking tot een referentie-ID.

     - sign: teken- en tijdstempelcode-object.

     - batch_sign: Onderteken en tijdstempel meerdere code-objecten met één OTP.

     - hash: Pre-bereken hash(es) voor later gebruik met de opdracht batch_hash_sign.

     - batch_sign_hash: teken hash(es) vooraf berekend met hash-opdracht.

        opdracht: teken

 

  • gebruikersnaam van SSL.com-account.

         username: ${{secrets.ES_USERNAME}}

  •  SSL.com-accountwachtwoord.

         password: ${{secrets.ES_PASSWORD}}

  • Referentie-ID voor ondertekeningscertificaat.

         credential_id: ${{secrets.CREDENTIAL_ID}}

         totp_secret: ${{secrets.ES_TOTP_SECRET}}

  • Pad van codeobject dat moet worden ondertekend.

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

  • Directory waar ondertekende code-object(en) worden geschreven.

          output_path: ${GITHUB_WORKSPACE}/artifacts

 

Ingangen

  • gebruikersnaam: 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)
  • bestandspad: Pad van codeobject dat moet worden ondertekend. (Verplicht)
  • uitvoer_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

Bereid de componenten van de workflow voor

  1. Maak een Github-map op uw editor. Voeg workflows toe aan de map en maak een yml-bestand onder de map.
    1. Geef uw project een naam en het type workflow dat erbij betrokken is
    Naam: Maven Build and Sign
     
    1. Activeer deze workflow met een push
    aan: duwen
     
    1. Een omgevingsvariabele maken
    • Omgevingsvariabelen worden gebruikt om de voorbeelden leesbaarder te maken. In de bovenstaande schermafbeelding van de voorbeeldworkflow zijn de PROJECT_NAME, PROJECT_VERSION en MAVEN_VERSION optioneel weggelaten. Zelfs met deze omissies kan het ondertekenen nog steeds doorgaan.
    env: PROJECT_NAME: HelloWorld PROJECT_VERSION: 0.0.1 MAVEN_VERSION: 3.8.5 JAVA_VERSION: 17
     
    1. Definieer de taken op uw editor
    jobs: build-and-sign-jar:
     
    1. Taak uitvoeren op Ubuntu Runner
        draait op: ubuntu-nieuwste
     
    1. Maak een naam. Wanneer de workflow wordt uitgevoerd, is dit de naam die wordt vastgelegd.
      naam: CodeSigner op Java met Maven
     

Beschrijf de stappen voor het uitchecken van de broncode, het instellen van de Java- en Maven-omgeving en het maken van Artifact Directory.

  1) Bekijk de broncode zodat de workflow er toegang toe heeft.

   stappen: - gebruikt: actions/checkout@v2
 

  2) Stel de Java- en Maven-omgeving in voor de workflow die moet worden gebruikt.

    - naam: installeer Maven en Java gebruikt: s4u/setup-maven-action@v1.3.1 met: java-versie: '${{env.JAVA_VERSION}}' maven-versie: '${{env.MAVEN_VERSION}}'

 

      3) Maak een artefactmap om ondertekende en niet-ondertekende artefactbestanden op te slaan

 - naam: Directory-shell maken: bash run: | mkdir ${GITHUB_WORKSPACE}/artefacten mkdir ${GITHUB_WORKSPACE}/pakketten

 

      4) Bouw een maven-project of -oplossing en al zijn afhankelijkheden.

      Nadat het jar-bestand is gemaakt, kopieert u naar de map 'packages' om te ondertekenen

  • In deze schriftelijke 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.
 - naam: Build Java Project shell: bash run: | mvn schone installatie -f java/pom.xml cp java/target/${{env.PROJECT_NAME}}-${{env.PROJECT_VERSION}}.jar ${GITHUB_WORKSPACE}/packages/${{env.PROJECT_NAME}}. kan
 

Geef een overzicht van de stappen voor de onderteken- en uploadtaken

  1. De Sign-taak is de stap waarbij de gemaakte JAR-bestanden (artefact) worden ondertekend met CodeSignTool.
 - name: Sign Artifact

        uses: sslcom/actions-codesigner@develop

        with:

           Teken en tijdstempel code-object.

commando: teken

           gebruikersnaam van SSL.com-account.

gebruikersnaam: ${{secrets.ES_USERNAME}}

           SSL.com-accountwachtwoord.

wachtwoord: ${{secrets.ES_PASSWORD}}

           Referentie-ID voor ondertekeningscertificaat.

credential_id: ${{secrets.CREDENTIAL_ID}}

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

totp_secret: ${{geheimen.ES_TOTP_SECRET}}

           Pad van codeobject dat moet worden ondertekend. (DLL, JAR, EXE, MSI-bestanden vb...)

  bestandspad: ${GITHUB_WORKSPACE}/packages/${{env.PROJECT_NAME}}.jar

           Directory waar ondertekende code-object(en) worden geschreven.

output_path: ${GITHUB_WORKSPACE}/artifacts

 

  1. De uploadtaak is de stap waar artefacten uit uw workflow worden geüpload, zodat u gegevens tussen taken kunt delen en gegevens kunt opslaan zodra een workflow is voltooid
 - naam: Ondertekende bestanden uploaden gebruikt: acties/upload-artifact@v2 met: naam: ${{env.PROJECT_NAME}}.jar pad: ./artifacts/${{env.PROJECT_NAME}}.jar
 

Download een build-artefact-uploader van Github Marketplace

Controleer uw codeerscript

Over het algemeen zou het codeerscript voor de buld-, sign- en uploadtaken eruit moeten zien als de onderstaande afbeelding. Zorg ervoor dat u eventuele fouten, zoals verkeerde spelling of foutieve regeleinden in het script, corrigeert, zodat het ondertekeningsproces soepel verloopt.

Definieer uw omgevingsvariabelen

Ga naar de locatie van je project op je Github-account. Klik op de Acties tab. Klik op de Nieuw repositorygeheim om de waarden voor elke omgevingsvariabele te plaatsen die vereist zijn bij het ondertekenen van uw code.

Maak een nieuwe repository op de opdrachtregel

Ga naar de locatie van uw project op Github en kopieer elk onderdeel van de push-opdracht.

Duw het project

Neem elke push-opdrachtregel op in uw code-editor. Na voltooiing wordt de code automatisch op Github gepusht.

Wacht tot het artefact is ondertekend met eSigner CodeSignTool

Upload het ondertekende bestand

Klik op het ondertekende bestand om het te uploaden.

Opmerking: zorg ervoor dat u typografische fouten of foutieve regeleinden in het script corrigeert, zodat het ondertekeningsproces soepel verloopt.

Sample Github Actions Pipeline


Check out the sample Github Actions pipeline we have created on github.com/SSLcom/codesigner-github-sample  

Andere integratiehandleidingen voor CI/CD Remote Signing

Neem voor informatie over een eSigner-abonnement en certificaten voor het ondertekenen van codes, inclusief oplossingen voor grote volumes en op maat  of vul onderstaand formulier in.  

Abonneer u op de nieuwsbrief van SSL.com

Mis geen nieuwe artikelen en updates van SSL.com