eSigner CKA (Cloud Key Adapter) ist eine Windows-basierte Anwendung, die die CNG-Schnittstelle (KSP Key Service Provider) verwendet, um Tools wie certutil.exe und signtool.exe die Verwendung zu ermöglichen eSigner Cloud Signature Consortium (CSC)-konforme API für Code Signing-Vorgänge in Unternehmen. Um eSigner-basierte Codesignaturen auf CI/CD-Tools durchführen zu können, müssen drei Voraussetzungen erfüllt sein:
- Erwerben Sie ein SSL.com EV Code Signing-Zertifikat
- Registrieren Sie Ihr Codesignaturzertifikat in eSigner
- Laden Sie eSigner CKA herunter und installieren Sie es
Beispiel-Workflows zum Signieren von .vsix
Umgebungsvariablen- USERNAME: Benutzername des SSL.com-Kontos. (Erforderlich)
- PASSWORD: Kennwort für das SSL.com-Konto (erforderlich)
- TOTP_SECRET: OAuth-TOTP-Geheimnis. Detaillierte Informationen erhalten Sie unter eSigner EV Code Signing automatisieren – SSL.com (Pflichtfeld)
- MODUS: „Sandbox“ oder „Produkt“ (erforderlich)
.NET-Code-DLL Beispiel-Workflows signieren
.NET-Code-DLL-Signierungsbeispiel-Workflow
Bereiten Sie die Komponenten des Workflows vor
- Erstellen Sie in Ihrem Editor einen .circleci-Ordner. Schließen Sie Workflows in den Ordner ein und erstellen Sie eine yml-Datei als config.yml unter dem Ordner.
- Legen Sie die CircleCI-Version fest. Das Versionsfeld soll verwendet werden, um Warnungen für veraltete oder Breaking Changes auszugeben.
Version: 2.1
-
Orbs sind wiederverwendbare Pakete der CircleCI-Konfiguration, die Sie projektübergreifend gemeinsam nutzen können, sodass Sie gekapselte, parametrisierte Befehle, Jobs und Executors erstellen können, die in mehreren Projekten verwendet werden können. Um das Signtool-Tool verwenden zu können, muss dies Windows sein.
Kugeln:
gewinnen: circleci/windows@5.0.0
-
Rufen Sie Jobs über Workflows auf. Workflows orchestrieren eine Reihe von Jobs, die ausgeführt werden sollen.
Arbeitsabläufe:
# Der Name des Arbeitsablaufs.
Sign-Datei:
# Innerhalb des Workflows definieren Sie die Jobs, die Sie ausführen möchten.
Arbeitsplätze:
– Sign-Datei
- Definieren Sie einen Job, der später in einem Workflow aufgerufen werden soll.
Arbeitsplätze:
Sign-Datei:
- Geben Sie die Ausführungsumgebung an. Wir müssen den Windows-Executor verwenden, da Signtool benötigt wird.
Testamentsvollstrecker:
Name: win/server-2019
Konfektionsgröße M
Variante: vs 2019
- Legen Sie das Arbeitsverzeichnis für den Job ab
Arbeitsverzeichnis: /home/circleci/project
- Schritte zum Job hinzufügen Siehe: https://circleci.com/docs/2.0/configuration-reference/#steps
Schritte:
- Checken Sie den Quellcode aus, damit der Workflow darauf zugreifen kann.
- Kasse
- Laden Sie das eSignerCKA-Setup herunter und entpacken Sie es
- Lauf:
Name: Laden Sie das eSignerCKA-Setup herunter und entpacken Sie es
Befehl: |
Invoke-WebRequest -OutFile eSigner_CKA_1.0.3.zip „https://www.ssl.com/download/ssl-com-esigner-cka-1-0-3“
Expand-Archive -Force eSigner_CKA_1.0.3.zip
Remove-Item eSigner_CKA_1.0.3.zip
Move-Item -Ziel „eSigner_CKA_1.0.3.exe“ -Pfad „eSigner_CKA_1.0.3SSL.COM eSigner CKA_1.0.3.exe“
- Installieren Sie eSignerCKA
- Lauf:
Name: Richten Sie eSignerCKA im stillen Modus ein
Befehl: |
mkdir -p „/home/circleci/project/eSignerCKA“
./eSigner_CKA_1.0.3.exe /CURRENTUSER /VERYSILENT /SUPPRESSMSGBOXES /DIR=“/home/circleci/project/eSignerCKA“ | Out-Null
- Legen Sie SSLcom-Kontoinformationen auf eSignerCKA fest
- Lauf:
name: Kontoinformationen auf eSignerCKA konfigurieren
Befehl: |
/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
- Entladen und laden Sie das Zertifikat in den Windows-Zertifikatspeicher
- Lauf:
Name: Zertifikat in Windows Store laden
Befehl: |
/home/circleci/project/eSignerCKA/eSignerCKATool.exe entladen
/home/circleci/project/eSignerCKA/eSignerCKATool.exe laden
- Wählen Sie Codesignaturzertifikat aus und erhalten Sie einen Fingerabdruck zum Signieren und Signieren von Artefakten mit signtool
- Lauf:
name: Zertifikat aus dem Windows Store auswählen und Beispieldatei mit SignTool signieren
Befehl: |
$CodeSigningCert = Get-ChildItem Cert:CurrentUserMy -CodeSigningCert | Select-Object -First 1
& 'C:Programme (x86)Windows Kits10App Certification Kitsigntool.exe' sign /debug /fd sha256 /tr http://ts.ssl.com /td sha256 /sha1 „$($CodeSigningCert.Thumbprint)“ „HelloWorld. dll“
.NET-Code-DLL-Signierungsbeispiel-Workflow
Bereiten Sie die Komponenten des Workflows vor
- Erstellen Sie in Ihrem Editor einen Ordner .github/workflows. Schließen Sie Workflows in den Ordner ein und erstellen Sie eine sign.yml-Datei unter dem Ordner.
- Benennen Sie Ihr Projekt und die Art des betroffenen Workflows
Name: Zeichenartefakt
-
Lösen Sie diesen Workflow bei einem Push aus
ein: drücken
-
Erstellen Sie eine Umgebungsvariable
Umgebung:
MASTER_KEY: Hauptschlüssel
SIGNABLE_FILE_PATH: HelloWorld.dll
INSTALL_DIR: C:UsersrunneradmineSignerCKA
MASTER_KEY_FILE: C:UsersrunneradmineSignerCKAmaster.key
-
Definieren Sie die Jobs in Ihrem Editor
Arbeitsplätze:
Sign-Datei:
-
Job auf Windows Runner ausführenLäuft auf: Windows-neueste
-
Erstellen Sie einen Namen. Wenn der Arbeitsablauf ausgeführt wird, ist dies der Name, der protokolliert wird.
Name: DLL-Datei mit eSignerCKA signieren
Skizzieren Sie die Schritte für den Sign-Job
-
Checken Sie den Quellcode aus, damit der Workflow darauf zugreifen kann.
– Name: Checkout-Repository
verwendet: Aktionen/Checkout@v3
- Laden Sie das eSignerCKA-Setup herunter und entpacken Sie es
– Name: Laden Sie das eSignerCKA-Setup herunter und entpacken Sie es
laufen: |
Invoke-WebRequest -OutFile eSigner_CKA_1.0.3.zip „https://www.ssl.com/download/ssl-com-esigner-cka-1-0-3“
Expand-Archive -Force eSigner_CKA_1.0.3.zip
Remove-Item eSigner_CKA_1.0.3.zip
Move-Item -Ziel „eSigner_CKA_1.0.3.exe“ -Pfad „eSigner_CKA_1.0.3SSL.COM eSigner CKA_1.0.3.exe“ - Installieren Sie eSignerCKA
– Name: Richten Sie eSignerCKA im stillen Modus ein
laufen: |
New-Item -ItemType Directory -Force -Path ${{ env.INSTALL_DIR }}
./eSigner_CKA_1.0.3.exe /CURRENTUSER /VERYSILENT /SUPPRESSMSGBOXES /DIR=“${{ env.INSTALL_DIR }}“ | Out-Null
- Legen Sie SSL.com-Kontoinformationen auf eSignerCKA fest
– Name: Konfigurationskontoinformationen auf eSignerCKA
laufen: |
${{ env.INSTALL_DIR }}/eSignerCKATool.exe config -mode „${{ secrets.MODE }}“ -user „${{ secrets.USERNAME }}“
-pass „${{ secrets.PASSWORD }}“ -totp „${{ secrets.TOTP_SECRET }}“ -key „${{ env.MASTER_KEY_FILE }}“ -r
- Entladen und laden Sie das Zertifikat in den Windows-Zertifikatspeicher
– Name: Zertifikat in Windows Store laden
laufen: |
${{ env.INSTALL_DIR }}/eSignerCKATool.exe entladen
${{ env.INSTALL_DIR }}/eSignerCKATool.exe laden - Codesignaturzertifikat auswählen und Fingerabdruck zum Signieren erhalten
– Name: Wählen Sie Zertifikat aus dem Windows Store
laufen: |
$CodeSigningCert = Get-ChildItem Cert:CurrentUserMy -CodeSigningCert | Select-Object -First 1
echo „THUMBPRINT=$($CodeSigningCert.Thumbprint)“ >> $env:GITHUB_ENV - Artefakt mit signtool signieren
– Name: Beispieldatei mit SignTool signieren
laufen: |
& 'C:/Program Files (x86)/Windows Kits/10/bin/10.0.17763.0/x86/signtool.exe' signieren /debug /fd sha256 /tr http://ts.ssl.com /td sha256 /sha1 ${{ env.THUMBPRINT }} ${{ env.SIGNABLE_FILE_PATH }}
.NET-Code-DLL-Signierungsbeispiel-Workflow
Definieren Sie die Komponenten des Workflows
- CErstellen Sie eine YML-Datei als .gitlab-ci.yml unter dem Ordner.
- Wird verwendet, um Läufer aus der Liste der verfügbaren Läufer auszuwählen. Ein Runner muss alle hier aufgeführten Tags haben, um den Job auszuführen.
.windows_runners:
tags:
– gemeinsam genutzte Fenster
– Fenster
– Windows-1809
- Gruppiert Jobs in Phasen. Alle Jobs in einer Stufe müssen abgeschlossen sein, bevor die nächste Stufe ausgeführt wird.
Stufen:
- Schild
- Nachfolgend finden Sie die Definition Ihres Jobs zum Signieren einer Datei. Definieren Sie, in welcher Phase der Job ausgeführt wird.
Sign-Datei:
Stufe: Zeichen
- Der Name eines oder mehrerer Jobs, von denen die Konfiguration geerbt werden soll.
erweitert:
– .windows_runners - Schreiben Sie das Skript zum Signieren der Datei.
Skript:
# Laden Sie das eSignerCKA-Setup herunter und entpacken Sie es
– powershell.exe -ExecutionPolicy Bypass -Befehl 'Invoke-WebRequest -OutFile eSigner_CKA_1.0.3.zip "https://www.ssl.com/download/ssl-com-esigner-cka-1-0-3"'
– powershell.exe -ExecutionPolicy Bypass -Befehl 'Expand-Archive -Force eSigner_CKA_1.0.3.zip'
– powershell.exe -ExecutionPolicy Bypass -Befehl 'Remove-Item eSigner_CKA_1.0.3.zip'
– powershell.exe -ExecutionPolicy Bypass -Command 'Move-Item -Destination „eSigner_CKA_1.0.3.exe“ -Path „eSigner_CKA_1.0.3SSL.COM eSigner CKA_1.0.3.exe“'
# Richten Sie eSignerCKA im stillen Modus ein
– powershell.exe -ExecutionPolicy Bypass -Command './eSigner_CKA_1.0.3.exe /CURRENTUSER /VERYSILENT /SUPPRESSMSGBOXES /DIR=“C:Usersgitlab_runnerDesktopeSignerCKA“'
# Installationsverzeichnis prüfen
– powershell.exe -ExecutionPolicy Bypass -Command 'dir C:Usersgitlab_runnerDesktopeSignerCKA'
# Kontoinformationen auf eSignerCKA konfigurieren
– powershell.exe -ExecutionPolicy Bypass -Command 'C:Usersgitlab_runnerDesktopeSignerCKAeSignerCKATool.exe config -mode ${MODE}
-user „${USERNAME}“ -pass „${PASSWORD}“ -totp „${TOTP_SECRET}“ -key „C:Usersgitlab_runnerAppDataRoamingeSignerCKAmaster.key“ -r'
# Zertifikat in Windows Store entladen
– powershell.exe -ExecutionPolicy Bypass -Command 'C:Usersgitlab_runnerDesktopeSignerCKAeSignerCKATool.exe unload'
# Zertifikat in den Windows Store laden
– powershell.exe -ExecutionPolicy Bypass -Command 'C:Usersgitlab_runnerDesktopeSignerCKAeSignerCKATool.exe laden'
# Datenverzeichnis prüfen
– powershell.exe -ExecutionPolicy Bypass -Command 'dir C:Usersgitlab_runnerAppDataRoamingeSignerCKA'
# Überprüfen Sie das Konfigurationsdatenverzeichnis
– powershell.exe -ExecutionPolicy Bypass -Command 'dir C:Usersgitlab_runnerAppDataRoamingeSignerCKAConfig'
# Wählen Sie Zertifikat aus dem Windows Store
– powershell.exe -ExecutionPolicy Bypass -Command '$CodeSigningCert = Get-ChildItem Cert:CurrentUserMy -CodeSigningCert | Select-Object -First 1; echo $CodeSigningCert.Thumbprint > .Thumbprint'
# Fingerabdruck des Debug-Zertifikats
– powershell.exe -ExecutionPolicy Bypass -Command 'Set-Variable -Name Thumbprint -Value (Get-Content .Thumbprint); echo $Daumenabdruck'
# Beispieldatei mit SignTool signieren
– powershell.exe -ExecutionPolicy Bypass -Befehl „Set-Variable -Name Thumbprint -Value (Get-Content .Thumbprint);
'C:Programme (x86)Windows Kits10bin10.0.17763.0x86signtool.exe sign /debug /fd sha256 /tr http://ts.ssl.com /td sha256 /sha1 $Thumbprint HelloWorld.dll'“
.NET-Code-DLL-Signierungsbeispiel-Workflow
Definieren Sie die Komponenten des Workflows
- Erstellen Sie eine YML-Datei als .travis.yml im Stammordner.
- Platzieren Sie die CPU-Architektur, auf der der Job ausgeführt werden soll.
Bogen: amd64
- Standardsprache zum Ausführen von Jobs auf Travis CI
Sprache: cis
- Das Betriebssystem, auf dem der Job ausgeführt werden soll
os: Fenster
- Geben Sie die Reihenfolge der Stufen an. Alle Jobs in einer Stufe müssen abgeschlossen sein, bevor die nächste Stufe ausgeführt wird.
Stufen:
- Schild
- Definieren Sie die Build-Phase
Arbeitsplätze:
-System umfasst:
– Stufe: Zeichen
-
Der Jobname
Name: Sign-Datei -
Das Betriebssystem, auf dem der Job ausgeführt werden soll
os: Fenster -
Aktuelle Sprache zum Ausführen von Jobs auf Travis CI
Sprache: c -
Schreiben Sie das Before-Skript, das vor dem Erstellen des Projekts ausgeführt werden soll
before_script:
– powershell.exe -ExecutionPolicy Bypass -Command 'New-Item -ItemType Directory -Force -Path C:UserstravisbuildDesigner-MustereSignerCKASSLcom'
-
Schreiben Sie das Skript zum Erstellen des Projekts.
Skript:
# Laden Sie das eSignerCKA-Setup herunter und entpacken Sie es
– powershell.exe -ExecutionPolicy Bypass -Befehl 'Invoke-WebRequest -OutFile eSigner_CKA_1.0.3.zip "https://www.ssl.com/download/ssl-com-esigner-cka-1-0-3"'
– powershell.exe -ExecutionPolicy Bypass -Befehl 'Expand-Archive -Force eSigner_CKA_1.0.3.zip'
– powershell.exe -ExecutionPolicy Bypass -Befehl 'Remove-Item eSigner_CKA_1.0.3.zip'
– powershell.exe -ExecutionPolicy Bypass -Command 'Move-Item -Destination „eSigner_CKA_1.0.3.exe“ -Path „eSigner_CKA_1.0.3SSL.COM eSigner CKA_1.0.3.exe“'
# Richten Sie eSignerCKA im stillen Modus ein
– powershell.exe -ExecutionPolicy Bypass -Command './eSigner_CKA_1.0.3.exe /CURRENTUSER /VERYSILENT /SUPPRESSMSGBOXES /DIR=“C:UserstravisbuildDesigner-MustereSignerCKASSLcom“ | Out-Null'
# Installationsverzeichnis prüfen
– powershell.exe -ExecutionPolicy Bypass -Command 'dir C:UserstravisbuildDesigner-MustereSignerCKASSLcom'
# Kontoinformationen auf eSignerCKA konfigurieren
– powershell.exe -ExecutionPolicy Bypass -Command 'C:UserstravisbuildDesigner-MustereSignerCKASSLcomeSignerCKATool.exe config -mode ${MODE} -user „${USERNAME}“
-pass „${PASSWORD}“ -totp „${TOTP_SECRET}“ -key „C:UserstravisbuildDesigner-MustereSignerCKASSLcommaster.key“ -r'
# Zertifikat in Windows Store entladen
– powershell.exe -ExecutionPolicy Bypass -Command 'C:UserstravisbuildDesigner-MustereSignerCKASSLcomeSignerCKATool.exe entladen'
# Zertifikat in den Windows Store laden
– powershell.exe -ExecutionPolicy Bypass -Command 'C:UserstravisbuildDesigner-MustereSignerCKASSLcomeSignerCKATool.exe laden'
# Wählen Sie Zertifikat aus dem Windows Store
– powershell.exe -ExecutionPolicy Bypass -Command '$CodeSigningCert = Get-ChildItem Cert:CurrentUserMy -CodeSigningCert | Select-Object -First 1; echo $CodeSigningCert.Thumbprint > .Thumbprint'
# Fingerabdruck des Debug-Zertifikats
– powershell.exe -ExecutionPolicy Bypass -Command 'Set-Variable -Name Thumbprint -Value (Get-Content .Thumbprint); echo $Daumenabdruck'
# Beispieldatei mit SignTool signieren
– powershell.exe -ExecutionPolicy Bypass -Command „Set-Variable -Name Thumbprint -Value (Get-Content .Thumbprint); 'C:Programme (x86)Windows Kits10binx64signtool.exe sign /debug /fd sha256 /tr http://ts.ssl.com /td sha256 /sha1 $Thumbprint HelloWorld.dll'“
Benötigen Sie kundenspezifische Lösungen?
Mit unserem Expertenwissen und unserem Fünf-Sterne-Support-Personal sind wir bereit und bereit, mit Ihnen an kundenspezifischen Lösungen oder Rabatten für Großseriensignaturen auf Unternehmensebene zu arbeiten. Füllen Sie das untenstehende Formular aus und wir melden uns bei Ihnen.