Brug
– navn: Signer artefakt med CodeSignTool
anvendelser: sslcom/actions-codesigner@develop
med:
- CodeSignTool-kommandoer:
- get_credential_ids
: Udskriv listen over eSigner-legitimations-id'er, der er knyttet til en bruger.
- credential_info
: Outputnøgle og certifikatoplysninger relateret til et legitimations-id.
- sign
: Kodeobjekt med tegn og tidsstempel.
- batch_sign
: Underskriv og tidsstempel flere kodeobjekter med en OTP.
- hash
: Forberegn hash(er) til senere brug med kommandoen batch_hash_sign.
- batch_sign_hash
: Signer hash(er) forudberegnet med hash-kommando.
kommando: underskrive
- SSL.com konto brugernavn.
username: ${{secrets.ES_USERNAME}}
- SSL.com kontoadgangskode.
password: ${{secrets.ES_PASSWORD}}
- Legitimations-id til signering af certifikat.
credential_id: ${{secrets.CREDENTIAL_ID}}
- OAuth TOTP-hemmelighed (https://www.ssl.com/how-to/automate-esigner-ev-code-signing)
totp_secret: ${{secrets.ES_TOTP_SECRET}}
- Sti til kodeobjekt, der skal signeres.
file_path: ${GITHUB_WORKSPACE}/test/src/build/HelloWorld.jar
- Mappe, hvor signeret kodeobjekt(er) vil blive skrevet.
output_path: ${GITHUB_WORKSPACE}/artifacts
Indgange
- brugernavn: SSL.com konto brugernavn. (Påkrævet)
- adgangskode: SSL.com kontoadgangskode (påkrævet)
- credential_id: Legitimations-id til signering af certifikat. Hvis credential_id er udeladt, og brugeren kun har ét eSigner-kodesigneringscertifikat, vil CodeSignTool som standard være det. Hvis brugeren har mere end ét kodesigneringscertifikat, er denne parameter obligatorisk. (Påkrævet)
- totp_secret: OAuth TOTP-hemmelighed. Du kan få adgang til detaljerede oplysninger om https://www.ssl.com/how-to/automate-esigner-ev-code-signing (Påkrævet)
- filsti: Sti til kodeobjekt, der skal signeres. (Påkrævet)
- output_sti: Bibliotek, hvor signeret kodeobjekt(er) vil blive skrevet. Hvis output_path er udeladt, vil filen specificeret i -file_path blive overskrevet med den signerede fil.
Java Code (Maven) JAR Signing Eksempel Workflow
Forbered komponenterne i arbejdsgangen
- Opret en Github-mappe på din editor. Inkluder arbejdsgange med mappen og opret en yml-fil under mappen.
- Navngiv dit projekt og den type arbejdsgang, der er involveret
Navn: Maven Build and Sign
- Udløs denne arbejdsgang på et tryk
på: skubbe
- Opret en miljøvariabel
- Miljøvariabler bruges til at gøre prøverne mere læsbare. I skærmbilledet ovenfor af eksempelarbejdsgangen blev PROJECT_NAME, PROJECT_VERSION og MAVEN_VERSION eventuelt udeladt. Underskrivelsen kan stadig fortsætte selv med disse udeladelser.
env: PROJECT_NAME: HelloWorld PROJECT_VERSION: 0.0.1 MAVEN_VERSION: 3.8.5 JAVA_VERSION: 17
- Definer jobs på din editor
jobs: build-and-sign-jar:
- Kør job på Ubuntu Runner
kører-på: ubuntu-nyeste
- Opret et navn. Når arbejdsgangen kører, er dette navnet, der logges.
navn: CodeSigner på Java med Maven
Skitser trinene til at tjekke kildekoden, opsætte Java- og Maven-miljøet og oprette Artifact Directory.
1) Tjek kildekoden, så arbejdsgangen kan få adgang til den.
trin: - bruger: actions/checkout@v2
2) Konfigurer Java- og Maven-miljøet, så arbejdsgangen kan bruges.
- navn: Installer Maven og Java bruger: s4u/setup-maven-action@v1.3.1 med: java-version: '${{env.JAVA_VERSION}}' maven-version: '${{env.MAVEN_VERSION}}'
3) Opret artefaktkatalog for at gemme signerede og usignerede artefaktfiler
- navn: Opret mappeskal: bash run: | mkdir ${GITHUB_WORKSPACE}/artefakter mkdir ${GITHUB_WORKSPACE}/pakker
4) Byg et maven-projekt eller -løsning og alle dets afhængigheder.
Efter at jar-filen er blevet oprettet, kopieres til 'pakker'-mappen for at signere
- I dette skriftlige underskriftseksempel workflow blev der oprettet flere projekttyper. Dette er grunden til, at filer af forskellige projekttyper blev opbevaret ved at oprette undermapper. En undermappe med navnet 'java' blev oprettet til Java-projekter. I demo-skærmbilledet ovenfor var der ikke behov for at oprette en undermappe ved navn 'java', så denne var ikke inkluderet i scriptet.
- navn: Byg Java Project shell: 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}}. krukke
Skitser trinene for Sign- og Upload-jobbene
- Sign-jobbet er det trin, hvor de oprettede JAR-filer (artefakt) vil blive signeret med CodeSignTool.
- navn: Sign Artifact bruger: sslcom/actions-codesigner@develop med:
Tegn og tidsstempel kode objekt.
kommando: tegn
SSL.com konto brugernavn.
brugernavn: ${{secrets.ES_USERNAME}}
SSL.com kontoadgangskode.
adgangskode: ${{secrets.ES_PASSWORD}}
Legitimations-id til signering af 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}}
Sti til kodeobjekt, der skal signeres. (DLL, JAR, EXE, MSI filer vb...)
file_path: ${GITHUB_WORKSPACE}/packages/${{env.PROJECT_NAME}}.jar
Mappe, hvor signeret kodeobjekt(er) vil blive skrevet.
output_path: ${GITHUB_WORKSPACE}/artefakter
- Uploadjobbet er det trin, hvor artefakter fra din arbejdsgang vil blive uploadet, så du kan dele data mellem job og gemme data, når en arbejdsgang er fuldført
- navn: Upload signerede filer bruger: actions/upload-artifact@v2 med: navn: ${{env.PROJECT_NAME}}.jar-sti: ./artifacts/${{env.PROJECT_NAME}}.jar
Få en build-artefakt-uploader fra Github Marketplace
Gennemgå dit kodningsscript
Alt i alt skal kodningsscriptet for buld-, sign- og upload-jobbene se ud som på billedet nedenfor. Sørg for at rette eventuelle fejl som f.eks. forkert stavning eller fejlagtige linjeskift i scriptet, så underskriftsprocessen kører problemfrit.
Definer dine miljøvariabler
Gå til placeringen af dit projekt på din Github-konto. Klik på handlinger fane. Klik på knappen Ny depothemmelighed knappen for at placere værdierne for hver miljøvariabel, der kræves for at signere din kode.
Opret et nyt lager på kommandolinjen
Fortsæt til placeringen af dit projekt på Github og kopier hver komponent af push-kommandoen.
Skub projektet
Inkluder hver push-kommandolinje i din kodeeditor. Efter afslutning vil koden automatisk blive skubbet på Github.
Vent på, at artefakten er signeret med eSigner CodeSignTool
Upload den signerede fil
Klik på den signerede fil for at uploade den.
Eksempel på Github Actions Pipeline
Tjek prøven af Github Actions-pipeline, vi har oprettet på github.com/SSLcom/codesigner-github-sample
Andre CI/CD Remote Signing Integration Guides
- 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-tjenester
Brug for tilpassede løsninger?
Med vores ekspertviden og femstjernede supportmedarbejdere er vi klar til og villige til at arbejde sammen med dig om skræddersyede løsninger eller store signeringsrabatter på virksomhedsniveau. Udfyld formularen nedenfor, så kontakter vi dig.