Site-Symbol SSL.com

So integrieren Sie eSigner CKA mit CI/CD-Tools für automatisiertes Code Signing

Die beiden folgenden Tabellen zeigen, wie Sie eSigner CKA integrieren Tools für Continuous Integration/Continuous Delivery (CI/CD). für Automatisierte Code-Signierung. Zum Signieren werden Anleitungen für CircleCI, GitHub Actions, Gitlab CI und Travis CI bereitgestellt .NET-Dateien. Zum Signieren werden Anleitungen für Azure Pipeline, GitHub Actions, Gitlab CI und Travis CI bereitgestellt .vsix-Dateien.

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:

SSL.com EV Codesignatur Zertifikate helfen, Ihren Code vor unbefugter Manipulation und Kompromittierung mit dem höchsten Validierungsniveau zu schützen, und sind für so wenig wie erhältlich $ 249 pro Jahr. Sie können auch Verwenden Sie Ihr EV Code Signing-Zertifikat in großem Maßstab in der Cloud mit eSigner.

BESTELLEN SIE JETZT!

Beispiel-Workflows zum Signieren von .vsix

Umgebungsvariablen
Beispielcodes finden Sie unter SSL.com Github-Repository unter: https://github.com/SSLcom/esigner-sample

.NET-Code-DLL Beispiel-Workflows signieren

CircleCI-IntegrationIntegration von GitHub-AktionenGitlab CI-IntegrationTravis CI-Integration

.NET-Code-DLL-Signierungsbeispiel-Workflow

Bereiten Sie die Komponenten des Workflows vor

  1. 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.
  2. Legen Sie die CircleCI-Version fest. Das Versionsfeld soll verwendet werden, um Warnungen für veraltete oder Breaking Changes auszugeben.

    Version: 2.1

  3. 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

  4. 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

  5. Definieren Sie einen Job, der später in einem Workflow aufgerufen werden soll.

    Arbeitsplätze:

       Sign-Datei:

  6. 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

  7. Legen Sie das Arbeitsverzeichnis für den Job ab 

    Arbeitsverzeichnis: /home/circleci/project

  8. Schritte zum Job hinzufügen Siehe: https://circleci.com/docs/2.0/configuration-reference/#steps  

    Schritte:

  9. Checken Sie den Quellcode aus, damit der Workflow darauf zugreifen kann.

    - Kasse

  10. 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“

  11. 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

  12. 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

  13. 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

  14. 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

  1. 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.
  2. Benennen Sie Ihr Projekt und die Art des betroffenen Workflows 

    Name: Zeichenartefakt

  3. Lösen Sie diesen Workflow bei einem Push aus 

    ein: drücken

  4. Erstellen Sie eine Umgebungsvariable

    Umgebung:

     MASTER_KEY: Hauptschlüssel

     SIGNABLE_FILE_PATH: HelloWorld.dll

     INSTALL_DIR: C:UsersrunneradmineSignerCKA

     MASTER_KEY_FILE: C:UsersrunneradmineSignerCKAmaster.key

  5. Definieren Sie die Jobs in Ihrem Editor

    Arbeitsplätze:

     Sign-Datei:

  6. Job auf Windows Runner ausführenLäuft auf: Windows-neueste

  7. 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

  1. Checken Sie den Quellcode aus, damit der Workflow darauf zugreifen kann.

    – Name: Checkout-Repository

       verwendet: Aktionen/Checkout@v3

  2. 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“
  3. 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

  4. 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

  5. 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
  6. 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
  7. 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

  1. CErstellen Sie eine YML-Datei als .gitlab-ci.yml unter dem Ordner.
  2. 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

  3. Gruppiert Jobs in Phasen. Alle Jobs in einer Stufe müssen abgeschlossen sein, bevor die nächste Stufe ausgeführt wird.

    Stufen:

          - Schild

  4. 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

  5. Der Name eines oder mehrerer Jobs, von denen die Konfiguration geerbt werden soll.

    erweitert:

         – .windows_runners
  6. 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

  1. Erstellen Sie eine YML-Datei als .travis.yml im Stammordner.
  2. Platzieren Sie die CPU-Architektur, auf der der Job ausgeführt werden soll.

    Bogen: amd64

  3. Standardsprache zum Ausführen von Jobs auf Travis CI

    Sprache: cis

  4. Das Betriebssystem, auf dem der Job ausgeführt werden soll

    os: Fenster

  5. 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

  6. Definieren Sie die Build-Phase

    Arbeitsplätze:

      -System umfasst:

         – Stufe: Zeichen

  7. Der Jobname

    Name: Sign-Datei
  8. Das Betriebssystem, auf dem der Job ausgeführt werden soll

    os: Fenster
  9. Aktuelle Sprache zum Ausführen von Jobs auf Travis CI

    Sprache: c
  10. 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'

  11. 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.

Beenden Sie die mobile Version