eSigner CKA (Cloud Key-adapter) is een op Windows gebaseerde applicatie die de CNG-interface (KSP Key Service Provider) gebruikt om tools zoals certutil.exe en signtool.exe de eSigner Cloud Signature Consortium (CSC)-compatibele API voor ondertekening van bedrijfscodes. Er moet aan drie voorwaarden worden voldaan voordat eSigner-gebaseerde codeondertekening op CI/CD-tools kan worden uitgevoerd:
- Koop een SSL.com EV Code Signing-certificaat
- Registreer uw certificaat voor codeondertekening in eSigner
- Download en installeer eSigner CKA
- USERNAME: gebruikersnaam van SSL.com-account. (Verplicht)
- WACHTWOORD: SSL.com-accountwachtwoord (vereist)
- TOTP_SECRET: OAuth TOTP-geheim. U hebt toegang tot gedetailleerde informatie over: Automatiseer eSigner EV Code Signing – SSL.com (Verplicht)
- ROUTE: 'sandbox' of 'product' (verplicht)
.NET Code DLL-ondertekening Voorbeeld workflow
Bereid de componenten van de workflow voor
- Maak een .circleci-map op uw editor. Voeg workflows toe aan de map en maak een yml-bestand als config.yml onder de map.
- Stel de CircleCI-versie in. Het versieveld is bedoeld om te worden gebruikt om waarschuwingen te geven voor afschrijving of brekende wijzigingen.
versie: 2.1
-
Orbs zijn herbruikbare pakketten van CircleCI-configuratie die u over projecten kunt delen, waardoor u ingekapselde, geparametriseerde opdrachten, taken en uitvoerders kunt maken die in meerdere projecten kunnen worden gebruikt. Om de signtool-tool te gebruiken, moet dit een venster zijn.
lichtbollen:
winnen: circleci/windows@5.0.0
-
Roep jobs op via workflows. Workflows orkestreren een reeks uit te voeren taken.
werkstromen:
# De naam van de werkstroom.
sign-bestand:
# Binnen de workflow definieert u de taken die u wilt uitvoeren.
banen:
– sign-bestand
- Definieer een taak die later in een workflow moet worden aangeroepen.
banen:
sign-bestand:
- Specificeer de uitvoeringsomgeving. We moeten de Windows-uitvoerder gebruiken omdat signtool nodig is.
uitvoerder:
naam: win/server-2019
maat medium
variant: versus 2019
- Plaats de werkmap voor de taak
werkmap: /home/circleci/project
- Voeg stappen toe aan de taak Zie: https://circleci.com/docs/2.0/configuration-reference/#steps
stappen:
- Bekijk de broncode zodat de workflow er toegang toe heeft.
- uitchecken
- Download eSignerCKA Setup en pak het uit
- rennen:
naam: Download en pak eSignerCKA Setup uit
opdracht: |
Invoke-WebRequest -OutFile eSigner_CKA_Setup.zip “https://www.ssl.com/download/ssl-com-esigner-cka”
Uitvouwen-Archief -Forceer eSigner_CKA_Setup.zip
Item verwijderen eSigner_CKA_Setup.zip
Item verplaatsen - Bestemming "eSigner_CKA_Installer.exe" - Pad "eSigner_CKA_*\*.exe"
- Installeer eSignerCKA
- rennen:
naam: Stel eSignerCKA in Stille modus in
opdracht: |
mkdir -p "/home/circleci/project/eSignerCKA"
./eSigner_CKA_Installer.exe /CURRENTUSER /VERYSILENT /SUPPRESSMSGBOXES /DIR=”/home/circleci/project/eSignerCKA” | Out-nul
- Stel SSLcom-accountgegevens in op eSignerCKA
- rennen:
naam: Config-accountinformatie op eSignerCKA
opdracht: |
/home/circleci/project/eSignerCKA/eSignerCKATool.exe config -mode $env:MODE -user “$env:USERNAME” -pass “$env:PASSWORD” -totp “$env:TOTP_SECRET” -key “/home/circleci /project/eSignerCKA/master.key” -r
- Certificaat uitladen en laden naar Windows-certificaatarchief
- rennen:
naam: Certificaat laden in Windows Store
opdracht: |
/home/circleci/project/eSignerCKA/eSignerCKATool.exe verwijderen
/home/circleci/project/eSignerCKA/eSignerCKATool.exe laden
- Selecteer het codeondertekeningscertificaat en verkrijg een vingerafdruk voor ondertekening en onderteken artefacten met signtool
- rennen:
naam: Selecteer Certificaat uit Windows Store en onderteken voorbeeldbestand met SignTool
opdracht: |
$CodeSigningCert = Get-ChildItem Cert:\CurrentUser\My -CodeSigningCert | Selecteer-Object-Eerste 1
& 'C:\Program Files (x86)\Windows Kits\10\App Certification Kit\signtool.exe' sign /debug /fd sha256 /tr http://ts.ssl.com /td sha256 /sha1 “$($ CodeSigningCert.Thumbprint)” “HelloWorld.dll”
.NET Code DLL-ondertekening Voorbeeld workflow
Bereid de componenten van de workflow voor
- Maak een .github/workflows-map op je editor. Voeg workflows toe aan de map en maak een sign.yml-bestand onder de map.
- Geef uw project een naam en het type workflow dat erbij betrokken is
Naam: tekenartefact
-
Activeer deze workflow met een push
aan: duwen
-
Een omgevingsvariabele maken
omgeving:
MASTER_KEY: hoofdsleutel
SIGNABLE_FILE_PATH: HelloWorld.dll
INSTALLATIEDIR: C:\Gebruikers\runneradmin\eSignerCKA
MASTER_KEY_FILE: C:\Users\runneradmin\eSignerCKA\master.key
-
Definieer de taken op uw editor
banen:
sign-bestand:
-
Voer de taak uit op Windows Runnerdraait op: windows-nieuwste
-
Maak een naam. Wanneer de workflow wordt uitgevoerd, is dit de naam die wordt vastgelegd.
naam: DLL-bestand ondertekenen met eSignerCKA
Geef een overzicht van de stappen voor de tekentaak
-
Bekijk de broncode zodat de workflow er toegang toe heeft.
– naam: Checkout Repository
gebruikt: acties/afrekenen@v3
- Download eSignerCKA Setup en pak het uit
– naam: eSignerCKA Setup downloaden en uitpakken
lopen: |
Invoke-WebRequest -OutFile eSigner_CKA_Setup.zip “https://www.ssl.com/download/ssl-com-esigner-cka”
Uitvouwen-Archief -Forceer eSigner_CKA_Setup.zip
Item verwijderen eSigner_CKA_Setup.zip
Item verplaatsen - Bestemming "eSigner_CKA_Installer.exe" - Pad "eSigner_CKA_*\*.exe" - Installeer eSignerCKA
– naam: eSignerCKA instellen in stille modus
lopen: |
New-Item -ItemType Directory -Force -Path ${{ env.INSTALL_DIR }}
./eSigner_CKA_Installer.exe /CURRENTUSER /VERYSILENT /SUPPRESSMSGBOXES /DIR=”${{ env.INSTALL_DIR }}” | Out-nul
- Stel SSL.com-accountgegevens in op eSignerCKA
– naam: Config-accountinformatie op eSignerCKA
lopen: |
${{ env.INSTALL_DIR }}/eSignerCKATool.exe config -mode “${{ secrets.MODE }}” -gebruiker “${{ secrets.USERNAME }}”
-pass “${{ secrets.PASSWORD }}” -totp “${{ secrets.TOTP_SECRET }}” -key “${{ env.MASTER_KEY_FILE }}” -r
- Certificaat uitladen en laden naar Windows-certificaatarchief
- naam: Laad certificaat in Windows Store
lopen: |
${{ env.INSTALL_DIR }}/eSignerCKATool.exe verwijderen
${{ env.INSTALL_DIR }}/eSignerCKATool.exe wordt geladen - Selecteer het codeondertekeningscertificaat en ontvang een vingerafdruk voor ondertekening
– naam: Selecteer Certificaat uit Windows Store
lopen: |
$CodeSigningCert = Get-ChildItem Cert:\CurrentUser\My -CodeSigningCert | Selecteer-Object-Eerste 1
echo "THUMBPRINT=$($CodeSigningCert.Thumbprint)" >> $env:GITHUB_ENV - Onderteken artefact met signtool
– naam: Voorbeeldbestand ondertekenen met SignTool
lopen: |
& '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 ${{ env.THUMBPRINT }} ${{ env.SIGNABLE_FILE_PATH }}
.NET Code DLL-ondertekening Voorbeeld workflow
Definieer de componenten van de workflow
- CSla een yml-bestand op als .gitlab-ci.yml onder de map.
- Gebruikt om hardlopers te selecteren uit de lijst met beschikbare hardlopers. Een hardloper moet alle hier vermelde tags hebben om de taak uit te voeren.
.windows_runners:
tags:
– gedeelde vensters
- ramen
– ramen-1809
- Groepeert taken in fasen. Alle taken in een fase moeten zijn voltooid voordat de volgende fase wordt uitgevoerd.
stadia:
- teken
- Hieronder vindt u de definitie van uw taak om het bestand te ondertekenen. Definieer in welke fase de taak zal worden uitgevoerd.
sign-bestand:
stadium: teken
- De naam van een of meer taken waarvan de configuratie moet worden overgenomen.
strekt zich uit:
– .windows_runners - Schrijf het script om het bestand te ondertekenen.
script:
# Download eSignerCKA Setup en pak het uit
– powershell.exe -ExecutionPolicy Bypass -Commando 'Invoke-WebRequest -OutFile eSigner_CKA_Setup.zip “https://www.ssl.com/download/ssl-com-esigner-cka”'
– powershell.exe -ExecutionPolicy Bypass -Commando 'Archief uitvouwen -Forceer eSigner_CKA_Setup.zip'
– powershell.exe -ExecutionPolicy Bypass -Opdracht 'Verwijder-item eSigner_CKA_Setup.zip'
– powershell.exe -ExecutionPolicy Bypass -Command 'Move-Item -Bestemming "eSigner_CKA_Installer.exe" -Pad "eSigner_CKA_*\*.exe" '
# Stel eSignerCKA in Stille modus in
– powershell.exe -ExecutionPolicy Bypass -Commando './eSigner_CKA_Installer.exe /CURRENTUSER /VERYSILENT /SUPPRESSMSGBOXES /DIR=”C:\Users\gitlab_runner\Desktop\eSignerCKA”'
# Controleer de installatiemap
– powershell.exe -ExecutionPolicy Bypass -Commando 'dir C:\Users\gitlab_runner\Desktop\eSignerCKA'
# Accountgegevens configureren op eSignerCKA
– powershell.exe -ExecutionPolicy Bypass -Command 'C:\Users\gitlab_runner\Desktop\eSignerCKA\eSignerCKATool.exe config -mode ${MODE}
-user “${USERNAME}” -pass “${PASSWORD}” -totp “${TOTP_SECRET}” -key “C:\Users\gitlab_runner\AppData\Roaming\eSignerCKA\master.key” -r'
# Certificaat uitladen in Windows Store
– powershell.exe -ExecutionPolicy Bypass -Commando 'C:\Users\gitlab_runner\Desktop\eSignerCKA\eSignerCKATool.exe unload'
# Laad certificaat in Windows Store
– powershell.exe -ExecutionPolicy Bypass -Commando 'C:\Users\gitlab_runner\Desktop\eSignerCKA\eSignerCKATool.exe load'
# Controleer de gegevensmap
– powershell.exe -ExecutionPolicy Bypass -Command 'dir C:\Users\gitlab_runner\AppData\Roaming\eSignerCKA'
# Controleer de map met configuratiegegevens
– powershell.exe -ExecutionPolicy Bypass -Command 'dir C:\Users\gitlab_runner\AppData\Roaming\eSignerCKA\Config'
# Selecteer Certificaat uit Windows Store
– powershell.exe -ExecutionPolicy Bypass -Commando '$CodeSigningCert = Get-ChildItem Cert:\CurrentUser\My -CodeSigningCert | Select-Object -Eerste 1; echo $CodeSigningCert.Thumbprint > .Thumbprint'
# Debug Certificaat Vingerafdruk
– powershell.exe -ExecutionPolicy Bypass -Commando 'Set-Variable -Name Thumbprint -Value (Get-Content .Thumbprint); echo $Duimafdruk'
# Onderteken voorbeeldbestand met SignTool
– powershell.exe -ExecutionPolicy Bypass -Commando “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 Code DLL-ondertekening Voorbeeld workflow
Definieer de componenten van de workflow
- Maak een yml-bestand als .travis.yml onder de hoofdmap.
- Plaats de CPU-architectuur waarop de taak moet worden uitgevoerd.
boog: amd64
- Standaardtaal om taken op Travis CI uit te voeren
taal: csharp
- Het besturingssysteem om de taak uit te voeren
os: ramen
- Geef de volgorde van de fasen op. Alle taken in één fase moeten worden voltooid voordat de volgende fase wordt uitgevoerd.
stadia:
- teken
- Definieer de bouwfase
banen:
omvatten:
– podium: teken
-
De taaknaam
naam: sign-bestand -
Het besturingssysteem om de taak uit te voeren
os: ramen -
Huidige taal om taken op Travis CI uit te voeren
taal: c -
Schrijf het Before-script dat moet worden uitgevoerd voordat het project wordt gebouwd
voor_script:
– powershell.exe -ExecutionPolicy Bypass -Command 'New-Item -ItemType Directory -Force -Path C:\Users\travis\build\esigner-voorbeeld\eSignerCKA\SSLcom'
-
Schrijf het script om het project te bouwen.
script:
# Download eSignerCKA Setup en pak het uit
– powershell.exe -ExecutionPolicy Bypass -Commando 'Invoke-WebRequest -OutFile eSigner_CKA_Opstelling.zip “https://www.ssl.com/download/ssl-com-esigner-cka”'
– powershell.exe -ExecutionPolicy Bypass -Commando 'Uitvouwen-archief -Forceer eSigner_CKA_Setup.zip'
– powershell.exe -ExecutionPolicy Bypass -Commando 'Verwijder-item eSigner_CKA_Setup.zip'
– powershell.exe -ExecutionPolicy Bypass -Command 'Move-Item -Destination'eSigner_CKA_Installer.exe” -Pad “eSigner_CKA_*\*.exe" '
# Stel eSignerCKA in Stille modus in
– powershell.exe -ExecutionPolicy Bypass -Commando './eSigner_CKA_Installer.exe /CURRENTUSER /VERYSILENT /SUPPRESSMSGBOXES /DIR=”C:\Users\travis\build\esigner-voorbeeld\eSignerCKA\SSLcom” | Out-Null'
# Controleer de installatiemap
– powershell.exe -ExecutionPolicy Bypass -Commando 'dir C:\Users\travis\build\esigner-voorbeeld\eSignerCKA\SSLcom'
# Accountgegevens configureren op eSignerCKA
– powershell.exe -ExecutionPolicy Bypass -Commando 'C:\Users\travis\build\esigner-voorbeeld\eSignerCKA\SSLcom\eSignerCKATool.exe config -mode ${MODE} -gebruiker “${USERNAME}”
-pass “${PASSWORD}” -totp “${TOTP_SECRET}” -key “C:\Users\travis\build\esigner-voorbeeld\eSignerCKA\SSLcom\master.key” -r'
# Certificaat uitladen in Windows Store
– powershell.exe -ExecutionPolicy Bypass -Commando 'C:\Users\travis\build\esigner-voorbeeld\eSignerCKA\SSLcom\eSignerCKATool.exe verwijderen'
# Laad certificaat in Windows Store
– powershell.exe -ExecutionPolicy Bypass -Commando 'C:\Users\travis\build\esigner-voorbeeld\eSignerCKA\SSLcom\eSignerCKATool.exe laden'
# Selecteer Certificaat uit Windows Store
– powershell.exe -ExecutionPolicy Bypass -Commando '$CodeSigningCert = Get-ChildItem Cert:\CurrentUser\My -CodeSigningCert | Select-Object -Eerste 1; echo $CodeSigningCert.Thumbprint > .Thumbprint'
# Debug Certificaat Vingerafdruk
– powershell.exe -ExecutionPolicy Bypass -Commando 'Set-Variable -Name Thumbprint -Value (Get-Content .Thumbprint); echo $Duimafdruk'
# Onderteken voorbeeldbestand met SignTool
– powershell.exe -ExecutionPolicy Bypass -Commando “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' ”
Als u deze fout tegenkomt:
The timestamp certificate does not meet a minimum public key length requirement
, dient u contact op te nemen met uw softwareleverancier om tijdstempels van ECDSA-sleutels toe te staan.Als uw softwareleverancier het gebruik van het normale eindpunt niet toestaat, kunt u dit verouderde eindpunt gebruiken
http://ts.ssl.com/legacy
om een tijdstempel te krijgen van een RSA-tijdstempeleenheid.Oplossingen op maat nodig?
Met onze deskundige kennis en vijfsterrenondersteuningspersoneel staan we klaar en bereid om met u samen te werken aan aangepaste oplossingen of grote ondertekeningskortingen op ondernemingsniveau. Vul het onderstaande formulier in en we nemen contact met je op.