eSigner CKA (Cloud Key Adapter) er en Windows-basert applikasjon som bruker CNG-grensesnittet (KSP Key Service Provider) for å tillate verktøy som certutil.exe og signtool.exe å bruke eSigner Cloud Signature Consortium (CSC)-kompatibel API for virksomhetskodesigneringsoperasjoner. Tre forutsetninger må være oppfylt før man kan utføre eSigner-basert kodesignering på CI/CD-verktøy:
- Kjøp et SSL.com EV-kodesigneringssertifikat
- Registrer kodesigneringssertifikatet ditt i eSigner
- Last ned og installer eSigner CKA
- USERNAME: SSL.com-konto brukernavn. (Obligatorisk)
- PASSORD: SSL.com-kontopassord (påkrevd)
- TOTP_SECRET: OAuth TOTP-hemmelighet. Du kan få tilgang til detaljert informasjon om Automatiser eSigner EV-kodesignering – SSL.com (Nødvendig)
- Veibeskrivelse: "sandbox" eller "produkt" (obligatorisk)
.NET-kode DLL-signeringseksempel arbeidsflyt
Forbered komponentene i arbeidsflyten
- Opprett en .circleci-mappe på editoren. Inkluder arbeidsflyter med mappen og lag en yml-fil som config.yml under mappen.
- Still inn CircleCI-versjonen. Versjonsfeltet er ment å brukes for å utstede advarsler for avskrivning eller brudd på endringer.
versjon: 2.1
-
Orbs er gjenbrukbare pakker med CircleCI-konfigurasjon som du kan dele på tvers av prosjekter, slik at du kan lage innkapslede, parameteriserte kommandoer, jobber og utførere som kan brukes på tvers av flere prosjekter. For å bruke signtool-verktøyet må dette være vinduer.
kuler:
vinn: circleci/windows@5.0.0
-
Påkalle jobber via arbeidsflyter. Arbeidsflyter orkestrerer et sett med jobber som skal kjøres.
arbeidsflyter:
# Navnet på arbeidsflyten.
sign-fil:
# Inne i arbeidsflyten definerer du jobbene du vil kjøre.
arbeidsplasser:
– sign-fil
- Definer en jobb som skal startes senere i en arbeidsflyt.
arbeidsplasser:
sign-fil:
- Spesifiser utførelsesmiljøet. Vi må bruke Windows executer fordi signtool er nødvendig.
eksekutor:
navn: win/server-2019
størrelse: medium
variant: vs 2019
- Plasser arbeidskatalogen for jobben
arbeidskatalog: /home/circleci/project
- Legg til trinn i jobben Se: https://circleci.com/docs/2.0/configuration-reference/#steps
trinn:
- Sjekk ut kildekoden slik at arbeidsflyten får tilgang til den.
- Sjekk ut
- Last ned og pakk ut eSignerCKA-oppsett
- løpe:
navn: Last ned og pakk ut eSignerCKA-oppsett
kommando: |
Invoke-WebRequest -OutFile eSigner_CKA_Setup.zip "https://www.ssl.com/download/ssl-com-esigner-cka"
Expand-Archive -Force eSigner_CKA_Setup.zip
Fjern-element eSigner_CKA_Setup.zip
Flytt element -Destinasjon "eSigner_CKA_Installer.exe" - Bane "eSigner_CKA_*\*.exe"
- Installer eSignerCKA
- løpe:
navn: Sett opp eSignerCKA i stille modus
kommando: |
mkdir -p “/home/circleci/project/eSignerCKA”
./eSigner_CKA_Installer.exe /CURRENTUSER /VERYSILENT /SUPPRESSMSGBOXES /DIR="/home/circleci/project/eSignerCKA" | Ut-Null
- Angi SSLcom-kontoinformasjon på eSignerCKA
- løpe:
navn: Konfigurasjonskontoinformasjon på eSignerCKA
kommando: |
/home/circleci/project/eSignerCKA/eSignerCKATool.exe config -modus $env:MODE -bruker "$env:USERNAME" -pass "$env:PASSWORD" -totp "$env:TOTP_SECRET" -nøkkel "/home/circleci /project/eSignerCKA/master.key” -r
- Last ned og last inn sertifikat til Windows sertifikatlager
- løpe:
navn: Last inn sertifikatet i Windows Store
kommando: |
/home/circleci/project/eSignerCKA/eSignerCKATool.exe losses
/home/circleci/project/eSignerCKA/eSignerCKATool.exe last
- Velg kodesigneringssertifikat og få thumbprint for signering og Signer artefakt med signtool
- løpe:
navn: Velg sertifikat fra Windows Store og signer prøvefil med SignTool
kommando: |
$CodeSigningCert = Get-ChildItem Cert:\CurrentUser\My -CodeSigningCert | Velg-objekt -Først 1
& 'C:\Program Files (x86)\Windows Kits\10\App Certification Kit\signtool.exe' tegn /debug /fd sha256 /tr http://ts.ssl.com /td sha256 /sha1 “$($ CodeSigningCert.Thumbprint)" "HelloWorld.dll"
.NET-kode DLL-signeringseksempel arbeidsflyt
Forbered komponentene i arbeidsflyten
- Opprett en .github/workflows-mappe på redigeringsprogrammet. Inkluder arbeidsflyter med mappen og lag en sign.yml-fil under mappen.
- Navngi prosjektet og typen arbeidsflyt som er involvert
Navn: Sign Artifact
-
Utløs denne arbeidsflyten på et trykk
på: trykk
-
Lag en miljøvariabel
env:
MASTER_KEY: master.key
SIGNABLE_FILE_PATH: HelloWorld.dll
INSTALL_DIR: C:\Users\runneradmin\eSignerCKA
MASTER_KEY_FILE: C:\Users\runneradmin\eSignerCKA\master.key
-
Definer jobbene på redaktøren din
arbeidsplasser:
sign-fil:
-
Kjør jobb på Windows Runnerkjører på: windows-nyeste
-
Lag et navn. Når arbeidsflyten kjører, er dette navnet som logges.
navn: Signer DLL-fil med eSignerCKA
Skisser fremgangsmåten for Sign-jobben
-
Sjekk ut kildekoden slik at arbeidsflyten får tilgang til den.
– navn: Checkout Repository
bruker: actions/checkout@v3
- Last ned og pakk ut eSignerCKA-oppsett
– navn: Last ned og pakk ut eSignerCKA-oppsett
løp: |
Invoke-WebRequest -OutFile eSigner_CKA_Setup.zip "https://www.ssl.com/download/ssl-com-esigner-cka"
Expand-Archive -Force eSigner_CKA_Setup.zip
Fjern-element eSigner_CKA_Setup.zip
Flytt element -Destinasjon "eSigner_CKA_Installer.exe" - Bane "eSigner_CKA_*\*.exe" - Installer eSignerCKA
– navn: Sett opp eSignerCKA i stille modus
løp: |
New-Item -ItemType Directory -Force -Path ${{ env.INSTALL_DIR }}
./eSigner_CKA_Installer.exe /CURRENTUSER /VERYSILENT /SUPPRESSMSGBOXES /DIR=”${{ env.INSTALL_DIR }}” | Ut-Null
- Angi SSL.com-kontoinformasjon på eSignerCKA
– navn: Konfigurasjonskontoinformasjon på eSignerCKA
løp: |
${{ env.INSTALL_DIR }}/eSignerCKATool.exe config -modus "${{ secrets.MODE }}" -bruker "${{ secrets.USERNAME }}"
-pass "${{ secrets.PASSWORD }}" -totp "${{ secrets.TOTP_SECRET }}" -nøkkel "${{ env.MASTER_KEY_FILE }}" -r
- Last ned og last inn sertifikat til Windows sertifikatlager
– navn: Last inn sertifikatet i Windows Store
løp: |
${{ env.INSTALL_DIR }}/eSignerCKATool.exe avlastning
${{ env.INSTALL_DIR }}/eSignerCKATool.exe last - Velg kodesigneringssertifikat og få tommelfingeravtrykk for signering
– navn: Velg sertifikat fra Windows Store
løp: |
$CodeSigningCert = Get-ChildItem Cert:\CurrentUser\My -CodeSigningCert | Velg-objekt -Først 1
echo “THUMBPRINT=$($CodeSigningCert.Thumbprint)” >> $env:GITHUB_ENV - Skilt artefakt med skiltverktøy
– navn: Signer prøvefil med SignTool
løp: |
& 'C:/Program Files (x86)/Windows Kits/10/bin/10.0.17763.0/x86/signtool.exe' tegn /debug /fd sha256 /tr http://ts.ssl.com /td sha256 /sha1 ${{ env.THUMBPRINT }} ${{ env.SIGNABLE_FILE_PATH }}
.NET-kode DLL-signeringseksempel arbeidsflyt
Definer komponentene i arbeidsflyten
- Create en yml-fil som .gitlab-ci.yml under mappen.
- Brukes til å velge løpere fra listen over tilgjengelige løpere. En løper må ha alle tagger oppført her for å kjøre jobben.
.windows_runners:
tags:
– delte vinduer
– vinduer
– windows-1809
- Grupperer jobber i etapper. Alle jobber i ett trinn må fullføres før neste trinn utføres.
stadier:
– tegn
- Nedenfor er definisjonen av jobben din for å signere filen. Definer hvilket stadium jobben skal kjøre i.
sign-fil:
trinn: tegn
- Navnet på en eller flere jobber å arve konfigurasjonen fra.
strekker:
– .windows_runners - Skriv skriptet for å signere filen.
manus:
# Last ned og pakk ut eSignerCKA-oppsett
– powershell.exe -ExecutionPolicy Bypass -Kommando 'Invoke-WebRequest -OutFile eSigner_CKA_Setup.zip "https://www.ssl.com/download/ssl-com-esigner-cka"'
– powershell.exe -ExecutionPolicy Bypass -Kommando 'Expand-Archive -Force eSigner_CKA_Setup.zip'
– powershell.exe -ExecutionPolicy Bypass -Kommando 'Remove-Item eSigner_CKA_Setup.zip'
– powershell.exe -ExecutionPolicy Bypass -Kommando 'Move-Item -Destination "eSigner_CKA_Installer.exe" -Path "eSigner_CKA_*\*.exe“'
# Sett opp eSignerCKA i stille modus
– powershell.exe -ExecutionPolicy Bypass -Kommando './eSigner_CKA_Installer.exe /CURRENTUSER /VERYSILENT /SUPPRESSMSGBOXES /DIR=”C:\Users\gitlab_runner\Desktop\eSignerCKA”'
# Sjekk installasjonskatalogen
– powershell.exe -ExecutionPolicy Bypass -Kommando 'dir C:\Users\gitlab_runner\Desktop\eSignerCKA'
# Konfigurer kontoinformasjon på eSignerCKA
– powershell.exe -ExecutionPolicy Bypass -Kommando 'C:\Users\gitlab_runner\Desktop\eSignerCKA\eSignerCKATool.exe config -mode ${MODE}
-bruker "${USERNAME}" -pass "${PASSWORD}" -totp "${TOTP_SECRET}" -nøkkel "C:\Users\gitlab_runner\AppData\Roaming\eSignerCKA\master.key" -r'
# Last ned sertifikatet i Windows Store
– powershell.exe -ExecutionPolicy Bypass -Kommando 'C:\Users\gitlab_runner\Desktop\eSignerCKA\eSignerCKATool.exe unload'
# Last inn sertifikatet i Windows Store
– powershell.exe -ExecutionPolicy Bypass -Kommando 'C:\Users\gitlab_runner\Desktop\eSignerCKA\eSignerCKATool.exe last'
# Sjekk datakatalogen
– powershell.exe -ExecutionPolicy Bypass -Kommando 'dir C:\Users\gitlab_runner\AppData\Roaming\eSignerCKA'
# Sjekk konfigurasjonsdatakatalogen
– powershell.exe -ExecutionPolicy Bypass -Command 'dir C:\Users\gitlab_runner\AppData\Roaming\eSignerCKA\Config'
# Velg sertifikat fra Windows Store
– powershell.exe -ExecutionPolicy Bypass -Command '$CodeSigningCert = Get-ChildItem Cert:\CurrentUser\My -CodeSigningCert | Velg-objekt -Første 1; echo $CodeSigningCert.Thumbprint > .Thumbprint'
# Debug Certificate Thumbprint
– powershell.exe -ExecutionPolicy Bypass -Kommando 'Set-Variable -Name Thumbprint -Value (Get-Content .Thumbprint); echo $Thumbprint'
# Signer prøvefil med SignTool
– powershell.exe -ExecutionPolicy Bypass -Kommando "Set-Variable -Name Thumbprint -Value (Get-Content .Thumbprint);
'C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x86\signtool.exe sign /debug /fd sha256 /tr http://ts.ssl.com /td sha256 /sha1 $Thumbprint HelloWorld.dll'"
.NET-kode DLL-signeringseksempel arbeidsflyt
Definer komponentene i arbeidsflyten
- Opprett en yml-fil som .travis.yml under rotmappen.
- Plasser CPU-arkitekturen for å kjøre jobben på.
bue: amd64
- Standardspråk for å kjøre jobber på Travis CI
språk: csharp
- Operativsystemet å kjøre jobben på
os: vinduer
- Angi rekkefølgen på stadiene. Alle jobber i ett trinn må fullføres før neste trinn utføres.
stadier:
– tegn
- Definer byggestadiet
arbeidsplasser:
inkluderer:
– scene: tegn
-
Jobbens navn
navn: sign-fil -
Operativsystemet å kjøre jobben på
os: vinduer -
Nåværende språk for å kjøre jobber på Travis CI
språk: c -
Skriv Før-skriptet som skal kjøres før du bygger prosjektet
før_skript:
– powershell.exe -ExecutionPolicy Bypass -Kommando 'New-Item -ItemType Directory -Force -Path C:\Users\travis\build\esigner-prøve\eSignerCKA\SSLcom'
-
Skriv manuset for å bygge prosjektet.
manus:
# Last ned og pakk ut eSignerCKA-oppsett
– powershell.exe -ExecutionPolicy Bypass -Kommando 'Invoke-WebRequest -OutFile eSigner_CKA_Oppsett.zip "https://www.ssl.com/download/ssl-com-esigner-cka"'
– powershell.exe -ExecutionPolicy Bypass -Kommando 'Expand-Archive -Force eSigner_CKA_Setup.zip'
– powershell.exe -ExecutionPolicy Bypass -Kommando 'Remove-Item eSigner_CKA_Setup.zip'
– powershell.exe -ExecutionPolicy Bypass -Kommando 'Move-Item -Destination'eSigner_CKA_Installer.exe"-sti"eSigner_CKA_*\*.exe“'
# Sett opp eSignerCKA i stille modus
– powershell.exe -ExecutionPolicy Bypass -Kommando './eSigner_CKA_Installer.exe /CURRENTUSER /VERYSILENT /SUPPRESSMSGBOXES /DIR=”C:\Users\travis\build\esigner-prøve\eSignerCKA\SSLcom" | Out-Null'
# Sjekk installasjonskatalogen
– powershell.exe -ExecutionPolicy Bypass -Command 'dir C:\Users\travis\build\esigner-prøve\eSignerCKA\SSLcom'
# Konfigurer kontoinformasjon på eSignerCKA
– powershell.exe -ExecutionPolicy Bypass -Kommando 'C:\Users\travis\build\esigner-prøve\eSignerCKA\SSLcom\eSignerCKATool.exe config -modus ${MODE} -bruker "${USERNAME}"
-pass "${PASSWORD}" -totp "${TOTP_SECRET}" -nøkkel "C:\Users\travis\build\esigner-prøve\eSignerCKA\SSLcom\master.key” -r'
# Last ned sertifikatet i Windows Store
– powershell.exe -ExecutionPolicy Bypass -Kommando 'C:\Users\travis\build\esigner-prøve\eSignerCKA\SSLcom\eSignerCKATool.exe unload'
# Last inn sertifikatet i Windows Store
– powershell.exe -ExecutionPolicy Bypass -Kommando 'C:\Users\travis\build\esigner-prøve\eSignerCKA\SSLcom\eSignerCKATool.exe last'
# Velg sertifikat fra Windows Store
– powershell.exe -ExecutionPolicy Bypass -Command '$CodeSigningCert = Get-ChildItem Cert:\CurrentUser\My -CodeSigningCert | Velg-objekt -Første 1; echo $CodeSigningCert.Thumbprint > .Thumbprint'
# Debug Certificate Thumbprint
– powershell.exe -ExecutionPolicy Bypass -Kommando 'Set-Variable -Name Thumbprint -Value (Get-Content .Thumbprint); echo $Thumbprint'
# Signer prøvefil med SignTool
– powershell.exe -ExecutionPolicy Bypass -Kommando "Set-Variable -Name Thumbprint -Value (Get-Content .Thumbprint); 'C:\Program Files (x86)\Windows Kits\10\bin\x64\signtool.exe sign /debug /fd sha256 /tr http://ts.ssl.com /td sha256 /sha1 $Thumbprint HelloWorld.dll' ”
Hvis du støter på denne feilen:
The timestamp certificate does not meet a minimum public key length requirement
, bør du kontakte programvareleverandøren for å tillate tidsstempler fra ECDSA-nøkler.Hvis det ikke er noen måte for programvareleverandøren din å tillate at det vanlige endepunktet brukes, kan du bruke dette eldre endepunktet
http://ts.ssl.com/legacy
for å få et tidsstempel fra en RSA Timestamping Unit.Trenger du tilpassede løsninger?
Med vår ekspertkunnskap og femstjerners støttepersonell er vi klare og villige til å samarbeide med deg om tilpassede løsninger eller store signeringsrabatter på bedriftsnivå. Fyll ut skjemaet under så tar vi kontakt.