TeamCity-Integrationshandbuch

Durch die Integration von CodeSign Secure mit TeamCity wird der Code-Signierungsschritt in Ihren Build-Konfigurationen automatisiert. Dadurch wird sichergestellt, dass Ihre Softwareartefakte vor der Veröffentlichung oder Bereitstellung ohne manuelles Eingreifen sicher signiert werden.

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 in einem HSM gespeicherten kryptografischen Schlüsseln und Zertifikaten zu ermöglichen.

Schritte:

  1. Laden Sie das EC KSP herunter

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

      Signiertools-Route
    • 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.

      Setup-Installationsprogramm
    • Folgen Sie den Anweisungen des Installationsassistenten auf dem Bildschirm.

      1. Akzeptieren Sie die Endbenutzer-Lizenzvereinbarung.
      2. Wählen Sie das Installationsverzeichnis (der Standard ist C:\Programme\Encryption Consulting\SigningKSP).
      3. Wählen Sie, ob Sie das KSP für alle oder nur für den aktuellen Benutzer installieren möchten
      Installationsordner
    • Geben Sie die angeforderten Details ein, beispielsweise:

      1. Benutzername: Der Benutzername/die E-Mail-Adresse, die Sie zum Anmelden beim CodeSign Secure-Portal verwenden.
      2. Code: Der Geheimcode, den Sie beim Einrichten der CodeSign Secure-Lösung festgelegt haben.
      3. Identitätstyp: Dieses Feld als Standard beibehalten (2)
      4. CodeSign Secure URL: Die URL für den Zugriff auf das Portal (Denken Sie daran, am Ende der URL „/api/“ hinzuzufügen)
      API-Benutzerauthentifizierungsinformationen
    • Klicken Sie auf Weiter und bestätigen Sie die Installation.

      KSP installieren
  3. Konfigurieren Sie die Einstellungen des Registrierungseditors
    • Öffnen Sie den Registrierungseditor und navigieren Sie zum Verzeichnis HKEY_CURRENT_USER>Software>Encryption Consulting>SigningKSP.

      Registrierungs-Editor
    • Öffnen Sie nun das CodeSign Secure-Portal und navigieren Sie zu System-Setup > Benutzer. Wählen Sie im Dropdown-Menü auf der rechten Seite „API-Schlüssel generieren“ aus.

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

      API-Schlüssel generieren
    • Fügen Sie dieses Token zum Feld „ectoken“ im Registrierungseditor hinzu.

      Ektoken

Einrichten des P12-Authentifizierungszertifikats

Zum Einrichten eines P12-Zertifikats müssen Sie Ihre Umgebungsvariablen konfigurieren, um Ihren Clientcomputer mit CodeSign Secure von Encryption Consulting zu authentifizieren.

Schritte:

  1. Konfigurieren der Umgebungsvariablen
    • Öffnen Sie die Umgebungsvariablen über Ihr Startmenü

      System Properties
    • Fügen Sie neue Systemvariablen hinzu, indem Sie auf die Schaltfläche „Neu“ klicken. Geben Sie den folgenden Variablennamen und die entsprechenden Details an.

      1. EC_Client_Auth: Entspricht dem Pfad Ihres SSL-Authentifizierungszertifikats, das von CodeSignSecure erstellt werden kann
      2. EC_Client_Pass: Entspricht dem Passwort Ihres Zertifikats, das bei der Erstellung des Zertifikats angegeben wird.
      3. EC_SSL_VERBOSE: Entspricht der Einstellung, die Debug-Ausgabe für EC KSP entweder zu aktivieren (1) oder zu deaktivieren (0).
      Umgebungsvariablen

Einrichten von Signtool zum Signieren

Beim Einrichten von Signtool für die Codesignatur müssen Sie sicherstellen, dass das Dienstprogramm Signtool.exe auf Ihrem Computer verfügbar und für die korrekte Interaktion mit dem Kryptografieanbieter von Encryption Consulting konfiguriert ist, der Zugriff auf den privaten Schlüssel Ihres Codesignaturzertifikats bietet.

Schritte:

  1. Herunterladen und Installieren des Windows SDK
    • Laden Sie über den folgenden Download-Link das Windows Software Development Kit mit den folgenden ausgewählten Tools herunter: developer.microsoft.com/en-us/windows/downloads/windows-10-sdk/

      Windows SDK
    • Öffnen Sie das Installationsprogramm nach dem Download und wählen Sie auf dem ersten Bildschirm „Weiter“, um die Standardeinstellungen beizubehalten.

      Windows SDK-Installer
    • Folgen Sie den Anweisungen des Installationsassistenten auf dem Bildschirm.

      1. Akzeptieren Sie die Datenschutzbestimmungen des Windows Kit.
      2. Akzeptieren Sie die Endbenutzer-Lizenzvereinbarung.
    • Deaktivieren Sie alles außer „Windows SDK Signing Tools for Desktop Apps“ und wählen Sie „Installieren“.

      Windows SDK-Funktion
    • Gehen Sie zum folgenden Pfad, in den die Tools heruntergeladen worden sein sollten: „C:\Programme (x86)\Windows Kits\10\bin“. Wählen Sie das gewünschte Versionsverzeichnis aus und prüfen Sie, ob die Datei „signtool.exe“ vorhanden ist.

      Werkzeugpfad signieren
    • Stellen Sie sicher, dass Sie sich im x64-Verzeichnis befinden, und kopieren Sie diesen Verzeichnispfad.
  2. Pfad zu Signtool.exe in Umgebungsvariablen hinzufügen
    • Öffnen Sie die Umgebungsvariablen über das Startmenü.

      Werkzeugpfad in Umgebungsvariable signieren
    • Scrollen Sie durch die Systemvariablen in der unteren Tabelle nach unten, bis Sie PATH in den Variablennamen finden.

      Variablennamen
    • Doppelklicken Sie in den Systemvariablen auf PATH und wählen Sie links auf dem Bildschirm Neu. Fügen Sie den kopierten Verzeichnispfad von „signtool.exe“ in die neue Auswahl ein.

      Verzeichnispfad des Sign-Tools
    • Wählen Sie unten „OK“ aus, um die Seite „Umgebungsvariablen“ zu verlassen.

TeamCity einrichten

Beim Einrichten von TeamCity müssen Sie Ihre TeamCity-Umgebung, insbesondere die Build-Agenten und Build-Konfigurationen, vorbereiten, um eine automatische Code-Signierung mit CodeSign Secure und KSP von Encryption Consulting durchzuführen.

Schritte:

  1. Laden Sie die TeamCity-Anwendung herunter und installieren Sie sie
    • Sie können entweder die kostenlose TeamCity-Anwendung oder eine kostenpflichtige Enterprise-Version über das LinkFür die Anwendung stehen drei Betriebssysteme zur Auswahl: Linux, Windows und macOS. Wir arbeiten mit der ausführbaren Windows-Datei.

      Auswahl des Installationsbetriebssystems
    • Führen Sie die Anwendung aus, um den TeamCity-Server in Ihrer Umgebung zu installieren.

      Setup Wizard
    • Akzeptieren Sie die Allgemeinen Geschäftsbedingungen und klicken Sie auf „Ich stimme zu“.

      AGB
    • Behalten Sie die Standardeinstellungen bei, um die Integration und Verwaltung des Servers zu vereinfachen.

      TeamCity-Setup
      TeamCity-Setup
      TeamCity-Setup
    • Klicken Sie auf „Speichern“ und dann auf „OK“, um mit dem nächsten Schritt der Kontoerstellung fortzufahren.

      Build-Agent-Eigenschaften
    • Wählen Sie die Option, den TeamCity-Server und den TeamCity-Agenten unter dem Benutzerkonto auszuführen, und klicken Sie auf Weiter. Sie werden aufgefordert, sich als aktueller Benutzer Ihres Systems anzumelden.

      Dienstkonto für Server
    • Wählen Sie beide Optionen zum Starten des Build-Agent-Dienstes und des TeamCity-Serverdienstes aus. Klicken Sie auf Weiter.

      Einrichtungsdienste
    • Klicken Sie auf „Fertig stellen“. Dadurch gelangen Sie zur Web-Benutzeroberfläche von TeamCity, wo Sie Ihre Projekte erstellen und die Konfigurationsrichtlinien festlegen können.

      Setup abgeschlossen
    • Die Web-Benutzeroberfläche läuft auf localhost auf Port 8111 (Standard). Klicken Sie auf „Weiter“, um den Speicherort des Datenverzeichnisses für den TeamCity-Server festzulegen. Greifen Sie über einen Browser auf TeamCity zu, indem Sie http://localhost:8111 aufrufen.

      Webbenutzeroberfläche
    • Wählen Sie die entsprechende Datenbank aus, in der der Build-Verlauf und Ihre Kontoinformationen gespeichert werden. Wir wählen für dieses Projekt die HSQLDB-Datenbank.

      Datenbankauswahl
    • Akzeptieren Sie die Lizenzvereinbarung und klicken Sie auf „Weiter“.

      Lizenzvereinbarung
    • Erstellen Sie jetzt ein Anmeldekonto für Ihre CI/CD-Pipeline und -Projekte.

      Login
  2. Erstellen Sie ein neues Projekt
    • Nach erfolgreicher Anmeldung gelangst du zum TeamCity Dashboard. Dort kannst du direkt mit der Erstellung deines ersten Projekts beginnen. Klicke dazu auf „Projekt erstellen“.

      Dashboard
    • Beim Erstellen eines Projekts in TeamCity haben Sie zwei Möglichkeiten. Sie können dies entweder über ein Repository-Konto oder manuell tun. Sehen wir uns zunächst den manuellen Prozess an. Geben Sie die erforderlichen Details für Ihr Projekt ein.

      Projekterstellung
    • Nach erfolgreicher Erstellung werden Sie aufgefordert, eine Build-Konfiguration zu erstellen.

      Build-Erstellung
    • Auch hier haben Sie zwei Möglichkeiten: Repository oder manueller Prozess. Wir fahren erneut mit dem manuellen Prozess fort. Geben Sie die erforderlichen Daten ein und klicken Sie auf Erstellen.

      Build-Konfiguration
    • Anschließend werden Sie aufgefordert, die Details für die Versionskontrolleinstellungen einzugeben. Dies ist ein optionaler Schritt. Wir werden ihn für dieses Projekt überspringen.

      Versionskontrolleinstellungen
  3. Erstellen Sie eine Pipeline in Ihrem Projekt
    • Nachdem wir die allgemeinen Projekt- und Konfigurationseinstellungen eingerichtet haben, können wir unserer Pipeline nun Build-Schritte hinzufügen. Dies sind die Prozesse, die tatsächlich Code-Signaturvorgänge ausführen.

      Build-Schritte
    • Klicken Sie auf die Schaltfläche „Build-Schritt hinzufügen“ und wählen Sie „Befehlszeile“ aus der Dropdown-Liste.

      Build-Schritt hinzufügen
    • Anschließend werden Sie aufgefordert, die Details für die Versionskontrolleinstellungen einzugeben. Dies ist ein optionaler Schritt. Wir werden ihn für dieses Projekt überspringen.

      Details zur Versionskontrolle
    • Geben Sie die grundlegenden Details wie Schrittname und Schritt-ID an.
    • Wählen Sie die Option „Benutzerdefinierter Skriptcode“ aus der Dropdown-Liste des Felds „Skript“ und geben Sie das Cmd-Skript ein, um den Signaturvorgang mit den erforderlichen Details durchzuführen.

      Nachfolgend finden Sie ein Beispiel für ein Befehlszeilenskript zu Ihrer Information:

      signtool sign /csp "Anbieter von Schlüsselspeichern für Verschlüsselungsberatung" /kc /fd /F /tr /td 

      Im Folgenden sind die Flags und ihre Bedeutung im Befehl aufgeführt:

      1. /csp: Hiermit wird der zu verwendende Schlüsseldienstanbieter angegeben. Dies sollte immer „Encryption Consulting Key Storage Provider“ sein.
      2. /kc: Dies sollte der Name des privaten Schlüssels sein, der mit Ihrem Zertifikat verknüpft ist. Dies ist wahrscheinlich derselbe Name wie der Zertifikatsname.
      3. /fd: Dies ist der Signaturalgorithmus, der mit der Signaturfunktion verwendet werden soll. Dies kann SHA256, SHA384 oder SHA512 sein.
      4. /f: Der Name des Zertifikats, das zum Signieren verwendet werden soll. Dies sollte derselbe Name wie das Flag /kc sein.
      5. /tr (optional): Dies ist die URL der zu verwendenden Zeitstempelstelle. Wenn /tr nicht verwendet wird und kein Zeitstempel erforderlich ist, sollte /td ebenfalls aus diesem Befehl weggelassen werden.
      6. /td (optional): Dies ist der Signaturalgorithmus, der mit dem Zeitstempelserver verwendet werden soll. Möglich sind SHA256, SHA384 oder SHA512. Dieser Algorithmus sollte mit dem Feld /fd identisch sein. Wenn /tr nicht verwendet wird und kein Zeitstempel erforderlich ist, sollte /td ebenfalls aus diesem Befehl weggelassen werden.
      7. : Dies ist der Name der zu signierenden Datei. Diese Datei muss sich in dem Verzeichnis befinden, in dem dieser Befehl ausgeführt wird.
    • Der gesamte Schritt sollte in etwa wie im Bild unten aussehen:

      Neuer Build-Schritt
    • Wiederholen Sie nun den obigen Vorgang, um einen weiteren Build-Schritt zur Überprüfung der signierten Datei zu erstellen.

      Nachfolgend finden Sie ein Beispiel für ein Befehlszeilenskript zu Ihrer Information:

      Signtool-Überprüfung
    • Der gesamte Schritt sollte in etwa wie im Bild unten aussehen:

      Neuer Build-Schritt

TeamCity Pipeline ausführen

  • Um die Pipeline nun auszuführen, klicken Sie oben rechts in der Projektansicht auf „Ausführen“.
  • Nachdem Sie auf „Ausführen“ geklickt haben, können Sie die Live-Aktion der Pipeline sehen, indem Sie auf „Agenten“ (oben links) klicken -> Agentennamen auswählen -> Buildverlauf.

    Build-Geschichte
  • Eine erfolgreiche Ausführung einer Pipeline sieht folgendermaßen aus. Hier können Sie sehen, dass beide Build-Schritte – Signierung und Verifizierung – abgeschlossen wurden.

    Protokolle erstellen