Användning
- namn: Signera artefakt med CodeSignTool
användningsområden: sslcom/actions-codesigner@develop
med:
- CodeSignTool-kommandon:
- get_credential_ids
: Skriv ut listan över eSigner-id:n som är kopplade till en användare.
- credential_info
: Utmatningsnyckel och certifikatinformation relaterat till ett referens-ID.
- sign
: Tecken och tidsstämpel kodobjekt.
- batch_sign
: Signera och tidsstämpla flera kodobjekt med en OTP.
- hash
: Förberäkna hash(ar) för senare användning med kommandot batch_hash_sign.
- batch_sign_hash
: Signera hash(ar) förberäknad med hash-kommando.
kommando: signera
- Användarnamn för SSL.com-konto.
username: ${{secrets.ES_USERNAME}}
- Lösenord för SSL.com-konto.
password: ${{secrets.ES_PASSWORD}}
- Autentiserings-ID för signering av certifikat.
credential_id: ${{secrets.CREDENTIAL_ID}}
- OAuth TOTP-hemlighet (https://www.ssl.com/how-to/automate-esigner-ev-code-signing)
totp_secret: ${{secrets.ES_TOTP_SECRET}}
- Sökväg för kodobjekt som ska signeras.
file_path: ${GITHUB_WORKSPACE}/test/src/build/HelloWorld.jar
- Katalog där signerade kodobjekt kommer att skrivas.
output_path: ${GITHUB_WORKSPACE}/artifacts
ingångar
- Användarnamn: 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)
- sökväg: Sökväg till kodobjekt som ska signeras. (Nödvändig)
- utvägsflöde: 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
Förbered komponenterna i arbetsflödet
- Skapa en Github-mapp i din editor. Inkludera arbetsflöden med mappen och skapa en yml-fil under mappen.
- Namnge ditt projekt och vilken typ av arbetsflöde som ingår
Namn: Maven Build and Sign
- Utlösa detta arbetsflöde på en push
på: tryck
- Skapa en miljövariabel
- Miljövariabler används för att göra proverna mer läsbara. I skärmdumpen ovan av exempelarbetsflödet utelämnades eventuellt PROJECT_NAME, PROJECT_VERSION och MAVEN_VERSION. Undertecknandet kan fortfarande fortsätta även med dessa utelämnanden.
env: PROJECT_NAME: HelloWorld PROJECT_VERSION: 0.0.1 MAVEN_VERSION: 3.8.5 JAVA_VERSION: 17
- Definiera jobben på din editor
jobb: build-and-sign-jar:
- Kör jobb på Ubuntu Runner
runs-on: ubuntu-senaste
- Skapa ett namn. När arbetsflödet körs är detta namnet som loggas.
namn: CodeSigner på Java med Maven
Beskriv stegen för att kolla källkoden, ställa in Java och Maven-miljön och skapa Artifact Directory.
1) Kolla in källkoden så att arbetsflödet kan komma åt den.
steg: - använder: actions/checkout@v2
2) Ställ in Java och Maven-miljön för arbetsflödet att använda.
- namn: Installera Maven och Java använder: s4u/setup-maven-action@v1.3.1 med: java-version: '${{env.JAVA_VERSION}}' maven-version: '${{env.MAVEN_VERSION}}'
3) Skapa artefaktkatalog för att lagra signerade och osignerade artefaktfiler
- namn: Skapa katalogskal: bash run: | mkdir ${GITHUB_WORKSPACE}/artefakter mkdir ${GITHUB_WORKSPACE}/paket
4) Bygg ett maven-projekt eller -lösning och alla dess beroenden.
Efter att jar-filen har skapats, kopiera till mappen "paket" för signering
- I det här skriftliga signeringsexemplet 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.
- namn: Bygg Java-projektskal: bash run: | mvn clean install -f java/pom.xml cp java/target/${{env.PROJECT_NAME}}-${{env.PROJECT_VERSION}}.jar ${GITHUB_WORKSPACE}/packages/${{env.PROJECT_NAME}}. burk
Beskriv stegen för jobben Signera och Ladda upp
- Signeringsjobbet är steget där de skapade JAR-filerna (artefakt) kommer att signeras med CodeSignTool.
- namn: Sign Artifact använder: sslcom/actions-codesigner@develop med:
Tecken- och tidsstämpelkodobjekt.
kommando: tecken
Användarnamn för SSL.com-konto.
användarnamn: ${{secrets.ES_USERNAME}}
Lösenord för SSL.com-konto.
lösenord: ${{secrets.ES_PASSWORD}}
Autentiserings-ID för signering av certifikat.
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}}
Sökväg för kodobjekt som ska signeras. (DLL, JAR, EXE, MSI-filer vb...)
filsökväg: ${GITHUB_WORKSPACE}/paket/${{env.PROJECT_NAME}}.jar
Katalog där signerade kodobjekt kommer att skrivas.
output_path: ${GITHUB_WORKSPACE}/artefakter
- Uppladdningsjobbet är steget där artefakter från ditt arbetsflöde kommer att laddas upp så att du kan dela data mellan jobb och lagra data när ett arbetsflöde är klart
- namn: Ladda upp signerade filer använder: actions/upload-artifact@v2 med: namn: ${{env.PROJECT_NAME}}.jar sökväg: ./artifacts/${{env.PROJECT_NAME}}.jar
Skaffa ett uppladdningsverktyg för byggartefakter från Github Marketplace
Granska ditt kodningsskript
På det hela taget bör kodningsskriptet för buld-, signerings- och uppladdningsjobben se ut som bilden nedan. Se till att korrigera eventuella fel som felstavning eller felaktiga radbrytningar i skriptet så att signeringsprocessen går smidigt.
Definiera dina miljövariabler
Gå till platsen för ditt projekt på ditt Github-konto. Klicka på Handlingar flik. Klicka på Ny förvarshemlighet knappen för att placera värdena för varje miljövariabel som krävs för att signera din kod.
Skapa ett nytt arkiv på kommandoraden
Fortsätt till platsen för ditt projekt på Github och kopiera varje komponent i push-kommandot.
Tryck på projektet
Inkludera varje push-kommandorad i din kodredigerare. När det är klart kommer koden automatiskt att pushas på Github.
Vänta tills artefakten signeras med eSigner CodeSignTool
Ladda upp den signerade filen
Klicka på den signerade filen för att ladda upp den.
Exempel på Github Actions Pipeline
Kolla in exempel på Github Actions pipeline vi har skapat på github.com/SSLcom/codesigner-github-sample
Andra CI/CD-integrationsguider för fjärrsignering
- Cloud Code Signing-integration med CircleCI
- Cloud Code Signing-integration med GitLab CI
- Cloud Code Signing-integration med Jenkins CI
- Cloud Code Signing-integration med Travis CI
- Cloud Code Signing-integration med Azure DevOps
- Cloud Code Signing Automation med CI/CD-tjänster
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.