Zum Inhalt

Webinar: Melden Sie sich jetzt für unser kommendes Webinar an!

Jetzt registrieren

So integrieren Sie CodeSign Secure in Ihre CircleCI-Pipeline

Integrieren Sie CodeSign Secure in Ihre CircleCI-Pipeline

Jede jemals eingesetzte Software ist nur so vertrauenswürdig wie der Prozess, der sie hervorgebracht hat. Codesignatur Das ist der Kern dieses Vertrauens – es beweist, dass eine Binärdatei nicht manipuliert wurde und tatsächlich aus Ihrem Unternehmen stammt. Manuelle Signierung von Builds ist jedoch fehleranfällig und verlangsamt Ihr Team. Der bessere Weg ist, die Signierung direkt in Ihren Prozess zu integrieren. CI / CD-PipelineEs geschieht also automatisch, konsistent und sicher bei jedem Build.

Diese Anleitung führt Sie durch die Integration von CodeSign Secure von Encryption Consulting in CircleCI mithilfe von Microsofts Signtool und einem selbst gehosteten CircleCI-Runner auf einem Windows-Rechner. Mit diesen Integrationsschritten signiert Ihre Pipeline automatisch jeden Build mit Schlüsseln, die sicher in CodeSign Secure gespeichert sind. HSM-gestützte Plattform – bei der niemals private Schlüssel auf dem Build-Rechner offengelegt werden.

Was Sie benötigen

Bevor Sie beginnen, stellen Sie bitte sicher, dass Sie Folgendes vorbereitet haben:

  • Eine aktive CodeSign Secure Konto mit Portalzugang
  • Ein Windows-Rechner, der als Ihr selbstgehosteter CircleCI-Runner fungiert.
  • Ein CircleCI-Konto
  • Ein GitHub-Repository (oder ein anderes unterstütztes Repository) zur Verbindung mit Ihrem CircleCI-Projekt
  • Administratorzugriff auf dem Windows-Rechner zur Installation der Tools

Zusammenfassung

Die Anlage ist in vier Hauptabschnitte unterteilt, wobei jeder Abschnitt auf dem vorherigen aufbaut:

  • Einrichtung des EC KSP — Installieren und konfigurieren Sie den Key Storage Provider von Encryption Consulting auf Ihrem Windows-Rechner.
  • Einrichtung der P12-Authentifizierung — Erstellen Sie ein Maschinenauthentifizierungszertifikat und konfigurieren Sie Umgebungsvariablen
  • Signtool einrichten — Installieren Sie das Windows SDK und verweisen Sie Ihre Umgebung auf Signtool.exe.
  • CircleCI einrichten und ausführen — Erstellen Sie Ihre Organisations-, Runner-, Projekt- und Pipeline-Konfiguration, um alles miteinander zu verbinden.

CodeSign Secure KSP einrichten

Der Encryption Consulting Key Storage Provider (KSP) für Windows ist eine Softwarekomponente, die das Microsoft Cryptography API: Next Generation (CNG)-Framework erweitert. Sein Hauptzweck besteht darin, Windows-Anwendungen wie signtool.exe die nahtlose Interaktion mit den kryptografischen Schlüsseln zu ermöglichen. Zertifikate gespeichert innerhalb eines HSM.

Schritte:

1. Laden Sie das EC KSP herunter.

  • Melden Sie sich im CodeSign Secure-Portal an und navigieren Sie zum Abschnitt „Signaturtools“, um „EC KSP für Windows“ herunterzuladen.

    Codesign Secure Portal
  • Extrahieren Sie die ZIP-Datei, um die Datei „Setup.msi“ zu erhalten.

2. Installieren Sie den EC KSP

  • Führen Sie das Installationsprogramm „Setup.msi“ mit Administratorrechten aus.

    Willkommen bei EC KSP
  • Folgen Sie den Anweisungen des Installationsassistenten auf dem Bildschirm.
    1. Akzeptieren Sie die Endbenutzer-Lizenzvereinbarung.
    2. Wählen Sie das Installationsverzeichnis (Standard ist C:\Program Files\Encryption Consulting\SigningKSP).
    3. Wählen Sie aus, ob Sie das KSP für alle Benutzer oder nur für den aktuellen Benutzer installieren möchten.

      EC Signing KSP
  • Geben Sie die angeforderten Details ein, beispielsweise:
    1. Benutzername – Der Benutzername/die E-Mail-Adresse, mit der Sie sich im CodeSign Secure-Portal anmelden.
    2. Code – Der geheime Code, den Sie bei der Einrichtung der CodeSign Secure-Lösung festgelegt haben.
    3. Identitätstyp – Dieses Feld auf Standardwert (2) belassen.
    4. CodeSign Secure URL – Die URL für den Zugriff auf das Portal (Denken Sie daran, „/api/“ am Ende der URL hinzuzufügen).

      API-Benutzerauthentifizierung
  • Klicken Sie auf Weiter und bestätigen Sie die Installation.

    Installation der EC-Signatur KSP

3. Konfigurieren Sie die Einstellungen des Registrierungseditors.

  • Öffnen Sie den Registrierungseditor und navigieren Sie zu HKEY_CURRENT_USER > Software > Encryption Consulting > SigningKSP Verzeichnis.

    SigningKSP-Ordner
  • Öffnen Sie nun das CodeSign Secure-Portal und navigieren Sie zu Systemeinstellungen > BenutzerWählen Sie die Option „API-Schlüssel generieren“.

    API-Schlüssel generieren
  • Erstellen Sie ein Token für Ihr Konto, indem Sie einen Namen und die Gültigkeitsdauer angeben. Denken Sie daran, das Token zu kopieren, da es nur einmal angezeigt wird.

    API-Schlüssel-Modal
  • Fügen Sie dieses Token hinzu „Ektoken“ Feld im Registrierungseditor.

    EC-Token

Einrichten des P12-Authentifizierungszertifikats

Die Einrichtung eines P12-Zertifikats beinhaltet die Konfiguration Ihrer Umgebungsvariablen zur Authentifizierung Ihres Client-Rechners mit CodeSign Secure von Encryption Consulting.

Schritte:

1. Erstellen Sie ein Maschinenauthentifizierungszertifikat

  • Öffnen Sie das CodeSign Secure-Portal und navigieren Sie zu Systemeinstellungen > BenutzerWählen Sie die Option „Authentifizierungszertifikat generieren“.

    Authentifizierungszertifikat generieren
  • Wählen Sie den Benutzernamen aus der Dropdown-Liste aus und geben Sie die Details wie Zertifikatsname und Ablaufdatum ein.
  • Anschließend erhalten Sie eine PFX Die Zertifikatsdatei und das zugehörige Passwort werden ebenfalls angezeigt.

    Anmerkungen: Dieses Passwort wird nur einmal angezeigt. Daher müssen Sie es kopieren und sicher aufbewahren, um die Authentifizierung beim CodeSign Secure-Server durchzuführen.

    Authentifizierungszertifikat-Modal generieren

2. Umgebungsvariablen konfigurieren

  • Öffnen Sie die Umgebungsvariablen über Ihr Startmenü.

    System Properties
  • Neue Systemvariablen können Sie durch Anklicken der Schaltfläche hinzufügen. New Schaltfläche. Geben Sie den folgenden Variablennamen und die zugehörigen Details an.
    1. EC_Client_Auth: Entspricht dem Pfad Ihres SSL-Authentifizierungszertifikats, das mit CodeSign Secure erstellt werden kann.
    2. EC_Client_Pass: Entspricht dem Passwort Ihres Zertifikats, das Ihnen bei der Erstellung des Zertifikats mitgeteilt wurde.
    3. EC_SSL_VERBOSE: Entspricht der Einstellung zum Aktivieren (1) oder Deaktivieren (0) der Debugging-Ausgabe für EC KSP.
    Umgebungsvariablen

Einrichten von Signtool zum Signieren

Einrichten signtool Für die Codesignierung ist es erforderlich sicherzustellen, dass das Dienstprogramm Signtool.exe auf Ihrem Rechner verfügbar ist und so konfiguriert ist, dass es korrekt mit dem Kryptografieanbieter von Encryption Consulting interagiert, der Zugriff auf den privaten Schlüssel Ihres Codesignierungszertifikats ermöglicht.

Schritte:

1. Windows SDK herunterladen und installieren

  • Laden Sie das Windows Software Development Kit über den folgenden Download-Link herunter: Windows SDK-Downloads – Windows-Apps | Microsoft Learn

    Windows Development Kit
  • Öffnen Sie nach dem Herunterladen das Installationsprogramm und wählen Sie im ersten Bildschirm „Weiter“, um die Standardeinstellungen beizubehalten.

    Geben Sie den Standort an
  • Folgen Sie den Anweisungen des Installationsassistenten auf dem Bildschirm.
    1. Akzeptieren Sie die Datenschutzbestimmungen des Windows Kit.
    2. Akzeptieren Sie die Endbenutzer-Lizenzvereinbarung.
  • Alles abwählen außer „Windows SDK-Signaturtools für Desktop-Apps“ und wählen Sie „Installieren“.

    Entwicklerkit installieren
  • Navigieren Sie zu folgendem Pfad, in den die Tools heruntergeladen worden sein sollten: C:\Program Files (x86)\Windows Kits\10\binWählen Sie das gewünschte Versionsverzeichnis aus und prüfen Sie, ob die „signtool.exe“ Datei vorhanden ist.

    Signtool.exe
  • Stellen Sie sicher, dass Sie sich im x64 Verzeichnis und kopieren Sie diesen Verzeichnispfad.

2. Fügen Sie den Pfad zu Signtool.exe in den Umgebungsvariablen hinzu.

  • Öffnen Sie die Umgebungsvariablen über das Startmenü.

    System Properties
  • Scrollen Sie in der unteren Tabelle durch die Systemvariablen, bis Sie Folgendes finden: PATH in den Variablennamen.

    Pfad finden
  • Doppelklicken Sie auf PATH in Systemvariablen und auswählen New Fügen Sie links auf dem Bildschirm den Pfad zu Ihrem kopierten Verzeichnis ein. „signtool.exe“ in die neue Auswahl.

    Umgebungsvariablen bearbeiten
  • Auswählen OK Klicken Sie unten, um die Seite „Umgebungsvariablen“ zu verlassen.

CircleCI einrichten

Für die Einrichtung von CircleCI müssen Sie die Organisation einrichten, Ihr Projekt konfigurieren und insbesondere Ihre Build-Maschinen mit den Runnern und Pipelines zum Signieren von Dateien mit signtool auf einem Windows-Rechner ausstatten.

Schritte:

1. Erstellen Sie eine CircleCI-Organisation

  • Navigieren Sie zu CircleCI und melden Sie sich mit Ihrem Konto an. Anschließend werden Ihnen die Optionen angezeigt, entweder eine neue Organisation zu erstellen oder eine bereits bestehende auszuwählen. In dieser Anleitung erstellen wir eine neue Organisation.

    Willkommen bei CircleCI
  • Geben Sie den eindeutigen Namen der Organisation ein.

    Einzigartiger Name
  • Anschließend gelangen Sie zur Startseite Ihrer Organisation im CircleCI-Konto.

    Startseite der Organisation

2. Erstellen Sie eine Ressourcenklasse für einen selbstgehosteten Runner.

  • Wählen Sie in der linken Seitenleiste den Bereich „Läufer“ aus.

    Runners
  • Zuerst werden Sie aufgefordert, die Allgemeinen Geschäftsbedingungen zu prüfen und zu bestätigen. Anschließend können Sie eine Ressourcenklasse für den Runner erstellen.

    Selbstorganisierte Läufer
  • Anschließend werden Sie zurück zum Abschnitt „Runner“ weitergeleitet, um eine Ressourcenklasse zu erstellen.

    Benutzerdefinierte Ressourcenklasse
  • Klicken Sie auf „Speichern und fortfahren“, dann erhalten Sie das Authentifizierungstoken.

    Anmerkungen: Kopieren und speichern Sie dieses Token sicher, da wir es in den nächsten Schritten zur Authentifizierung des Runners mit der CircleCI-Pipeline benötigen.

    Installieren Sie den selbstgehosteten Runner.
  • Klicken Sie auf „Weiter“, um diesen Läufer zu Ihrer Organisation hinzuzufügen.

    Ressourcenklasse erstellt

3. Installieren Sie den Runner auf Ihrem Windows-Rechner.

  • Nachdem wir ein Token erhalten haben, müssen wir einen selbstgehosteten Runner auf unserem Rechner installieren. Auf diesem Rechner sind Signtool und ECSigningKSP installiert und konfiguriert.
  • Laden Sie das Skript „Install-CircleCIRunner.ps1“ herunter von GitHub auf dieser Maschine.

    CircleCI-Repository
  • Öffnen Sie PowerShell als Administrator und navigieren Sie zu dem Verzeichnis, in dem Sie die Skriptdatei abgelegt haben.
  • Führen Sie den folgenden Befehl aus:
    1. Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072;
    2. ./Install-CircleCIRunner.ps1;
  • Im Rahmen der Installation öffnet sich die Konfigurationsdatei für den Maschinen-Runner (runner-agent-config.yaml) in Notepad. Tragen Sie die erforderlichen Informationen ein. Die Konfigurationsdatei befindet sich standardmäßig im Installationsverzeichnis C:\Programme\CircleCI.
  • Geben Sie das Authentifizierungstoken ein, das wir beim Erstellen der Ressourcenklasse erstellt haben.

    Authentifizierungstoken
  • Nach Abschluss der Runner-Einrichtung startet dieser automatisch und beginnt mit der Suche nach Aufträgen.
  • Sie können einen Läufer auf der CircleCI-Seite sehen.

    Gleichzeitige Nutzung

4. Erstellen Sie ein Projekt und richten Sie eine Pipeline ein.

  • Nun kehren wir zur Startseite der Organisation zurück, um ein Projekt zu erstellen und die Pipeline zu initialisieren.

    Startseite der Organisation
  • Klicken Sie auf „Projekt erstellen“ und wählen Sie die Option „Softwareanwendung erstellen, testen und bereitstellen“.

    Projekt
  • Geben Sie den Projektnamen ein und klicken Sie auf die Option „Weiter: Pipeline einrichten“.

    Projekt-Details
  • Geben Sie den Namen der Pipeline ein und klicken Sie auf die Option „Weiter: Repository auswählen“.

    Pipeline-Einrichtung
  • Sie können auswählen, welches Repository mit Ihrer Pipeline verbunden werden soll. In dieser Anleitung verwenden wir ein GitHub-Repository.

    Repository für Pipeline auswählen
  • Wählen Sie das Repository aus, nachdem Sie Ihr GitHub-Konto mit CircleCI Pipeline verbunden haben.

    Verbinde dich mit GitHub
  • Klicken Sie auf die Option „Konfigurationsdatei vorbereiten“, um eine Beispielkonfigurationsdatei (YAML) in einen neuen Branch Ihres verbundenen Repositorys zu übertragen.

    Konfiguration vorbereiten
  • Anschließend wird Ihnen ein Beispiel-Repository angezeigt. Klicken Sie auf die Option „Weiter: Trigger einrichten“.

    Richten Sie Ihre Trigger ein.
  • Sie können die Trigger nach Ihren Bedürfnissen konfigurieren. Wir belassen es bei der Standardeinstellung, sodass die Pipeline bei jedem neuen Commit ausgeführt wird. Klicken Sie auf „Weiter: Einrichtung überprüfen und abschließen“.

    Einrichtung überprüfen und abschließen
  • Überprüfen Sie Ihre Einstellungen und klicken Sie auf die Option „Konfiguration übernehmen und ausführen“.

    Überprüfen Sie die Einrichtung
  • Es wird die Pipeline mit dieser Beispielkonfigurationsdatei ausführen, um die Pipeline zu testen.

    Erstellen und testen
  • Sie können Ihre Pipeline im Abschnitt „Pipelines“ in der linken Seitenleiste einsehen.

    Pipelines

5. Aktualisieren Sie die Pipeline-Konfiguration

  • Wir werden nun die config.yml-Datei in unserem Repo-Branch aktualisieren, um den Befehl signtool auszuführen und die Signierung durchzuführen.
  • Um den Befehl signtool über die CircleCI-Pipeline auszuführen, halten Sie sich an die unten stehende Struktur der config.yml:

    Konfigurations-YML
  • Hier finden Sie eine funktionierende config.yml-Datei als Referenz, die den Details entspricht, die wir in den vorherigen Schritten verwendet haben, um die Ressourcenklasse und das Signtool zu implementieren.

    Konfigurations-YML
  • Wenn Sie diese Update-Konfigurationsdatei in Ihren Repository-Branch einchecken, sollte der Runner die Pipeline automatisch starten.

    YAML-Konfiguration

6. Führen Sie die CircleCI-Pipeline aus.

  • Sobald die Datei übertragen wurde, wird im Abschnitt „Pipeline“ ein neuer Pipeline-Lauf angezeigt.

    Aktualisierte Konfiguration
  • Nach erfolgreichem Abschluss der Pipeline können Sie die Eigenschaften der zu signierenden Datei auf eine gültige Signatur überprüfen.

    Probe PS1

Enterprise Code-Signing-Lösung

Holen Sie sich mit unserer Code-Signing-Lösung eine Lösung für alle Ihre kryptografischen Software-Code-Signing-Anforderungen.

Fazit

Sie haben nun eine vollständig automatisierte Codesignierungspipeline mit CircleCI eingerichtet und CodeSign SecureJedes Mal, wenn ein Entwickler Änderungen in Ihr Repository eincheckt, wird die Pipeline ausgelöst, der Auftrag auf Ihrem selbst gehosteten Windows-Runner ausgeführt und die Ausgabe mit Signtool signiert – ganz ohne manuelle Verwaltung eines privaten Schlüssels. Dieser Ansatz bietet Ihrem Team wichtige Vorteile wie Konsistenz, Sicherheit und Nachvollziehbarkeit. Sie können diese Konfiguration anschließend auf mehrere Pipelines, zusätzliche Signaturzertifikate oder andere CI/CD-Plattformen ausweiten.

Sollten Sie auf Probleme stoßen oder erweiterte Konfigurationsmöglichkeiten erkunden wollen, steht Ihnen das Team von Encryption Consulting gerne zur Verfügung. Vereinbaren Sie eine Demo oder kontaktieren Sie das Team von Encryption Consulting unter www.encryptionconsulting.com, um zu erfahren, wie CodeSign Secure die Software-Lieferkette Ihres Unternehmens sicherer und effizienter gestalten kann.