eSigner CKA (Cloud Key Adapter) är en Windows-baserad applikation som använder CNG-gränssnittet (KSP Key Service Provider) för att tillåta verktyg som certutil.exe och signtool.exe att använda eSigner Cloud Signature Consortium (CSC)-kompatibelt API för företagskodsignering. Tre förutsättningar måste uppfyllas för att kunna utföra eSigner-baserad kodsignering på CI/CD-verktyg:
- Köp ett SSL.com EV Code Signing-certifikat
- Registrera ditt kodsigneringscertifikat i eSigner
- Ladda ner och installera eSigner CKA
- USERNAME: Användarnamn för SSL.com-konto. (Nödvändig)
- LÖSENORD: Lösenord för SSL.com-konto (krävs)
- TOTP_SECRET: OAuth TOTP-hemlighet. Du kan komma åt detaljerad information om Automatisera eSigner EV Code Signing – SSL.com (Nödvändig)
- Vägbeskrivning: 'sandlåda' eller 'produkt' (obligatoriskt)
.NET-kod DLL-signeringsexempel arbetsflöde
Förbered komponenterna i arbetsflödet
- Skapa en .circleci-mapp i din editor. Inkludera arbetsflöden med mappen och skapa en yml-fil som config.yml under mappen.
- Ställ in CircleCI-versionen. Versionsfältet är avsett att användas för att utfärda varningar för utfasning eller avbrytande ändringar.
version: 2.1
-
Orbs är återanvändbara paket med CircleCI-konfiguration som du kan dela mellan projekt, vilket gör att du kan skapa inkapslade, parametriserade kommandon, jobb och exekverare som kan användas i flera projekt. För att använda signtool-verktyget måste detta vara fönster.
klot:
vinna: circleci/windows@5.0.0
-
Anropa jobb via arbetsflöden. Arbetsflöden orkestrerar en uppsättning jobb som ska köras.
arbetsflöden:
# Namnet på arbetsflödet.
sign-fil:
# Inuti arbetsflödet definierar du de jobb du vill köra.
jobb:
– sign-fil
- Definiera ett jobb som ska anropas senare i ett arbetsflöde.
jobb:
sign-fil:
- Ange exekveringsmiljön. Vi måste använda Windows executer eftersom signtool behövs.
testamentsexekutor:
namn: win/server-2019
storlek: medium
variant: vs 2019
- Placera arbetskatalogen för jobbet
arbetskatalog: /home/circleci/project
- Lägg till steg i jobbet Se: https://circleci.com/docs/2.0/configuration-reference/#steps
steg:
- Kolla in källkoden så att arbetsflödet kan komma åt den.
- kolla upp
- Ladda ner och packa upp eSignerCKA Setup
- springa:
namn: Ladda ner och packa upp eSignerCKA Setup
kommando: |
Invoke-WebRequest -OutFile eSigner_CKA_Setup.zip “https://www.ssl.com/download/ssl-com-esigner-cka”
Expand-Archive -Force eSigner_CKA_Setup.zip
Remove-Item eSigner_CKA_Setup.zip
Flytta objekt -Destination "eSigner_CKA_Installer.exe" -Sökväg "eSigner_CKA_*\*.exe"
- Installera eSignerCKA
- springa:
namn: Ställ in eSignerCKA i tyst läge
kommando: |
mkdir -p “/home/circleci/project/eSignerCKA”
./eSigner_CKA_Installer.exe /CURRENTUSER /VERYSILENT /SUPPRESSMSGBOXES /DIR="/home/circleci/project/eSignerCKA" | Out-Null
- Ställ in SSLcom-kontoinformation på eSignerCKA
- springa:
namn: Config Kontoinformation på eSignerCKA
kommando: |
/home/circleci/project/eSignerCKA/eSignerCKATool.exe config -mode $env:MODE -user “$env:USERNAME” -pass “$env:LÖSENORD” -totp “$env:TOTP_SECRET” -key “/home/circleci /project/eSignerCKA/master.key” -r
- Ladda ur och ladda certifikat till Windows certifikatarkiv
- springa:
namn: Ladda certifikat i Windows Store
kommando: |
/home/circleci/project/eSignerCKA/eSignerCKATool.exe urladdning
/home/circleci/project/eSignerCKA/eSignerCKATool.exe laddas
- Välj kodsigneringscertifikat och få tumavtryck för signering och Signera artefakt med signtool
- springa:
namn: Välj certifikat från Windows Store och signera exempelfil med SignTool
kommando: |
$CodeSigningCert = Get-ChildItem Cert:\CurrentUser\My -CodeSigningCert | Välj-objekt -Först 1
& 'C:\Program Files (x86)\Windows Kits\10\App Certification Kit\signtool.exe' tecken /debug /fd sha256 /tr http://ts.ssl.com /td sha256 /sha1 “$($ CodeSigningCert.Thumbprint)” “HelloWorld.dll”
.NET-kod DLL-signeringsexempel arbetsflöde
Förbered komponenterna i arbetsflödet
- Skapa en .github/workflows-mapp i din editor. Inkludera arbetsflöden med mappen och skapa en sign.yml-fil under mappen.
- Namnge ditt projekt och vilken typ av arbetsflöde som ingår
Namn: Sign Artifact
-
Utlösa detta arbetsflöde på en push
på: tryck
-
Skapa 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
-
Definiera jobben på din editor
jobb:
sign-fil:
-
Kör jobb på Windows Runnerkörs-på: windows-senaste
-
Skapa ett namn. När arbetsflödet körs är detta namnet som loggas.
namn: Signera DLL-fil med eSignerCKA
Beskriv stegen för Sign-jobbet
-
Kolla in källkoden så att arbetsflödet kan komma åt den.
– namn: Checkout Repository
använder: actions/checkout@v3
- Ladda ner och packa upp eSignerCKA Setup
– namn: Ladda ner och packa upp eSignerCKA Setup
kör: |
Invoke-WebRequest -OutFile eSigner_CKA_Setup.zip “https://www.ssl.com/download/ssl-com-esigner-cka”
Expand-Archive -Force eSigner_CKA_Setup.zip
Remove-Item eSigner_CKA_Setup.zip
Flytta objekt -Destination "eSigner_CKA_Installer.exe" -Sökväg "eSigner_CKA_*\*.exe" - Installera eSignerCKA
– namn: Ställ in eSignerCKA i tyst läge
kör: |
New-Item -ItemType Directory -Force -Path ${{ env.INSTALL_DIR }}
./eSigner_CKA_Installer.exe /CURRENTUSER /VERYSILENT /SUPPRESSMSGBOXES /DIR=”${{ env.INSTALL_DIR }}” | Out-Null
- Ställ in SSL.com-kontoinformation på eSignerCKA
– namn: Config Account Information på eSignerCKA
kör: |
${{ env.INSTALL_DIR }}/eSignerCKATool.exe config -mode "${{ secrets.MODE }}" -användare "${{ secrets.USERNAME }}"
-passa "${{ secrets.PASSWORD }}" -totp "${{ secrets.TOTP_SECRET }}" -nyckel "${{ env.MASTER_KEY_FILE }}" -r
- Ladda ur och ladda certifikat till Windows certifikatarkiv
– namn: Ladda certifikat i Windows Store
kör: |
${{ env.INSTALL_DIR }}/eSignerCKATool.exe avlastning
${{ env.INSTALL_DIR }}/eSignerCKATool.exe laddas - Välj kodsigneringscertifikat och få tumavtryck för signering
– namn: Välj certifikat från Windows Store
kör: |
$CodeSigningCert = Get-ChildItem Cert:\CurrentUser\My -CodeSigningCert | Välj-objekt -Först 1
echo “THUMBPRINT=$($CodeSigningCert.Thumbprint)” >> $env:GITHUB_ENV - Sign artefakt med signtool
– namn: Signera provfil med SignTool
kör: |
& 'C:/Program Files (x86)/Windows Kits/10/bin/10.0.17763.0/x86/signtool.exe' tecken /debug /fd sha256 /tr http://ts.ssl.com /td sha256 /sha1 ${{ env.THUMBPRINT }} ${{ env.SIGNABLE_FILE_PATH }}
.NET-kod DLL-signeringsexempel arbetsflöde
Definiera komponenterna i arbetsflödet
- Cskriv en yml-fil som .gitlab-ci.yml under mappen.
- Används för att välja löpare från listan över tillgängliga löpare. En löpare måste ha alla taggar listade här för att köra jobbet.
.windows_runners:
Taggar:
– delade fönster
– fönster
– windows-1809
- Grupperar jobb i etapper. Alla jobb i ett steg måste slutföras innan nästa steg kan utföras.
steg:
- tecken
- Nedan är definitionen av ditt jobb att signera fil. Definiera i vilket stadium jobbet ska köras.
sign-fil:
scen: tecken
- Namnet på ett eller flera jobb att ärva konfigurationen från.
förlänger:
– .windows_runners - Skriv skriptet för att signera filen.
manus:
# Ladda ner och packa upp eSignerCKA Setup
– 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" -Sökväg "eSigner_CKA_*\*.exe”'
# Ställ in eSignerCKA i tyst läge
– powershell.exe -ExecutionPolicy Bypass -Kommando './eSigner_CKA_Installer.exe /CURRENTUSER /VERYSILENT /SUPPRESSMSGBOXES /DIR=”C:\Users\gitlab_runner\Desktop\eSignerCKA”'
# Kontrollera installationskatalogen
– powershell.exe -ExecutionPolicy Bypass -Kommando 'dir C:\Users\gitlab_runner\Desktop\eSignerCKA'
# Konfigurera kontoinformation på eSignerCKA
– powershell.exe -ExecutionPolicy Bypass -Kommando 'C:\Users\gitlab_runner\Desktop\eSignerCKA\eSignerCKATool.exe config -mode ${MODE}
-användare "${USERNAME}" -passera "${PASSWORD}" -totp "${TOTP_SECRET}" -nyckel "C:\Users\gitlab_runner\AppData\Roaming\eSignerCKA\master.key" -r'
# Ladda ur certifikat till Windows Store
– powershell.exe -ExecutionPolicy Bypass -Kommando 'C:\Users\gitlab_runner\Desktop\eSignerCKA\eSignerCKATool.exe unload'
# Ladda certifikat i Windows Store
– powershell.exe -ExecutionPolicy Bypass -Kommando 'C:\Users\gitlab_runner\Desktop\eSignerCKA\eSignerCKATool.exe load'
# Kontrollera datakatalogen
– powershell.exe -ExecutionPolicy Bypass -Kommando 'dir C:\Users\gitlab_runner\AppData\Roaming\eSignerCKA'
# Kontrollera konfigurationsdatakatalogen
– powershell.exe -ExecutionPolicy Bypass -Kommando 'dir C:\Users\gitlab_runner\AppData\Roaming\eSignerCKA\Config'
# Välj certifikat från Windows Store
– powershell.exe -ExecutionPolicy Bypass -Kommando '$CodeSigningCert = Get-ChildItem Cert:\CurrentUser\My -CodeSigningCert | Välj-Objekt -Första 1; echo $CodeSigningCert.Thumbprint > .Thumbprint'
# Debug Certificate Thumbprint
– powershell.exe -ExecutionPolicy Bypass -Kommando 'Set-Variable -Name Thumbprint -Value (Get-Content .Thumbprint); echo $Thumbprint'
# Signera provfil 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-kod DLL-signeringsexempel arbetsflöde
Definiera komponenterna i arbetsflödet
- Skapa en yml-fil som .travis.yml under rotmappen.
- Placera CPU-arkitekturen för att köra jobbet på.
båge: amd64
- Standardspråk för att köra jobb på Travis CI
språk: csharp
- Operativsystemet att köra jobbet på
OS: Windows
- Ange ordningen på stegen. Alla jobb i ett steg måste slutföras innan nästa steg utförs.
steg:
- tecken
- Definiera byggstadiet
jobb:
innefattar:
– scen: tecken
-
Jobbets namn
namn: sign-fil -
Operativsystemet att köra jobbet på
OS: Windows -
Aktuellt språk för att köra jobb på Travis CI
språk: c -
Skriv före-skriptet som ska köras innan du bygger projektet
före_skript:
– powershell.exe -ExecutionPolicy Bypass -Kommando 'New-Item -ItemType Directory -Force -Path C:\Users\travis\build\esigner-prov\eSignerCKA\SSLcom'
-
Skriv manuset för att bygga projektet.
manus:
# Ladda ner och packa upp eSignerCKA Setup
– powershell.exe -ExecutionPolicy Bypass -Kommando 'Invoke-WebRequest -OutFile eSigner_CKA_Uppstart.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"-väg"eSigner_CKA_*\*.exe”'
# Ställ in eSignerCKA i tyst läge
– powershell.exe -ExecutionPolicy Bypass -Kommando './eSigner_CKA_Installer.exe /CURRENTUSER /VERYSILENT /SUPPRESSMSGBOXES /DIR=”C:\Users\travis\build\esigner-prov\eSignerCKA\SSLcom” | Out-Null'
# Kontrollera installationskatalogen
– powershell.exe -ExecutionPolicy Bypass -Command 'dir C:\Users\travis\build\esigner-prov\eSignerCKA\SSLcom'
# Konfigurera kontoinformation på eSignerCKA
– powershell.exe -ExecutionPolicy Bypass -Kommando 'C:\Users\travis\build\esigner-prov\eSignerCKA\SSLcom\eSignerCKATool.exe config -mode ${MODE} -användare "${USERNAME}"
-passera "${PASSWORD}" -totp "${TOTP_SECRET}" -nyckel "C:\Users\travis\build\esigner-prov\eSignerCKA\SSLcom\master.key” -r'
# Ladda ur certifikat till Windows Store
– powershell.exe -ExecutionPolicy Bypass -Kommando 'C:\Users\travis\build\esigner-prov\eSignerCKA\SSLcom\eSignerCKATool.exe unload'
# Ladda certifikat i Windows Store
– powershell.exe -ExecutionPolicy Bypass -Kommando 'C:\Users\travis\build\esigner-prov\eSignerCKA\SSLcom\eSignerCKATool.exe load'
# Välj certifikat från Windows Store
– powershell.exe -ExecutionPolicy Bypass -Kommando '$CodeSigningCert = Get-ChildItem Cert:\CurrentUser\My -CodeSigningCert | Välj-Objekt -Första 1; echo $CodeSigningCert.Thumbprint > .Thumbprint'
# Debug Certificate Thumbprint
– powershell.exe -ExecutionPolicy Bypass -Kommando 'Set-Variable -Name Thumbprint -Value (Get-Content .Thumbprint); echo $Thumbprint'
# Signera provfil 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' ”
Om du stöter på det här felet:
The timestamp certificate does not meet a minimum public key length requirement
, bör du kontakta din programvaruleverantör för att tillåta tidsstämplar från ECDSA-nycklar.Om det inte finns något sätt för din programvaruleverantör att tillåta att den normala slutpunkten används, kan du använda denna äldre slutpunkt
http://ts.ssl.com/legacy
för att få en tidsstämpel från en RSA Timestamping Unit.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.