Cloud Code Signing-Integration mit Travis CI

Dieser Artikel zeigt, wie Sie automatisierte Codesignaturen auf Travis CI durchführen können, indem Sie eSigner CodeSignTool in Ihre Pipeline integrieren. 

eSigner ist unsere Remote-Codesignatur-Plattform, die das gleiche Sicherheitsniveau wie USB-Token und vernetzte HSMS bietet, jedoch auf effizientere und intuitivere Weise.  Teil des eSigner-Toolkits ist CodeSignTool: ein sicheres Befehlszeilenprogramm, das sich ideal für die Durchführung von Codesignaturen in Unternehmen in verschiedenen CI/CD-Umgebungen, einschließlich Travis, eignet.
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!

Umgebungsvariablen

  • USERNAME: Benutzername des SSL.com-Kontos. (Erforderlich)
  • PASSWORD: Kennwort für das SSL.com-Konto (erforderlich)
  • CREDENTIAL_ID: Anmelde-ID zum Signieren des Zertifikats. Wenn credential_id ausgelassen wird und der Benutzer nur ein eSigner-Codesignaturzertifikat hat, verwendet CodeSignTool standardmäßig dieses. Wenn der Benutzer über mehr als ein Codesignaturzertifikat verfügt, ist dieser Parameter obligatorisch. (Erforderlich)
  • TOTP_SECRET: OAuth-TOTP-Geheimnis. Detaillierte Informationen erhalten Sie unter https://www.ssl.com/how-to/automate-esigner-ev-code-signing (Pflichtfeld)
  • UMGEBUNGSNAME : 'TEST'- oder 'PROD'-Umgebung. (Erforderlich)

Eingänge

  • Eingabedateipfad: Pfad des zu signierenden Codeobjekts. (Erforderlich)
  • Ausgabeverzeichnis_Pfad: Verzeichnis, in das signierte Codeobjekte geschrieben werden. Wenn output_path weggelassen wird, wird die in -file_path angegebene Datei mit der signierten Datei überschrieben.

Beispiel-Workflow für Java-Code (Maven) JAR-Signierung

Erstellen Sie ein Projekt

Erstellen Sie unter dem Projekt eine Datei für Travis

Definieren Sie die Komponenten des Workflows

  1. Platzieren Sie die CPU-Architektur, auf der der Job ausgeführt werden soll

Bogen: amd64

  1. Standardsprache zum Ausführen von Tests

Sprache: Java

  1. Geben Sie das Betriebssystem an, auf dem der Job ausgeführt werden soll

Betriebssystem: Linux

  1. Schreiben Sie die zu verwendende Ubuntu-Distribution

Abstand: bionisch

  1. Umgebungsvariablen global definieren. Die Eigenschaft auf Jobebene überschreibt globale Variablen.
  • Beachten Sie, dass TERM=dumb nur für Gradle-Projektinstanzen benötigt wird.
  • Geben Sie unter ENVIRONMENT_NAME „TEST“ für Testsignaturen und „PROD“ für Livesignaturen ein.

Umgebung:

  weltweit:

    – PROJECT_NAME=“Hallo Welt“

    – PROJECT_VERSION=“0.0.1“

    – BEGRIFF=dumm

    – ENVIRONMENT_NAME = „TEST“

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

  - bauen

  - Schild

Skizzieren Sie die Bauphase  

Arbeitsplätze:

  -System umfasst:

        – Stufe: bauen

  1. Der Jobname

      Name: build-maven

  1. Die zu verwendende Ubuntu-Distribution

      Abstand: bionisch

  1. Verwenden Sie den Docker-Befehl zum Signieren  

      Leistungen:

        – Docker

  1. Verwenden Sie dotnet-cli, um das Projekt zu erstellen

      Sprache: Java

  1. Java-Version zum Erstellen des Projekts

      jdk:

      – oraclejdk17

  1. Zwischenspeichern des m2-Verzeichnisses zur Beschleunigung

      cache:

        Verzeichnisse:

        – $HOME/.m2

  1. Schreiben Sie das Before-Skript, das vor dem Erstellen des Projekts ausgeführt werden soll

      before_script:

        # Erstellen Sie Verzeichnisse für Artefakte

        – mkdir -p ${TRAVIS_BUILD_DIR}/artifacts

        – mkdir -p ${TRAVIS_BUILD_DIR}/Pakete

        # Maven-Build-Optionen festlegen

        – export MAVEN_CLI_OPTS=“–batch-mode –errors –fail-at-end –show-version -DinstallAtEnd=true -DdeployAtEnd=true“

  1. Schreiben Sie das Skript zum Erstellen des Projekts.
  • In diesem Signierbeispiel-Workflow wurden mehrere Projekttypen erstellt. Aus diesem Grund wurden Dateien unterschiedlicher Projekttypen durch das Anlegen von Unterordnern gehalten. Für Java-Projekte wurde ein Unterordner mit dem Namen „java“ erstellt. Im obigen Demo-Screenshot war es nicht erforderlich, einen Unterordner mit dem Namen „java“ zu erstellen, sodass dieser nicht im Skript enthalten war.

      Skript:

        # Erstellen Sie ein Maven-Projekt mit Maven-Optionen

        – mvn $MAVEN_CLI_OPTS saubere Installation -f java/pom.xml

         # Erstellte Artefakte in das Artefaktverzeichnis kopieren

        – cp java/target/${PROJECT_NAME}-${PROJECT_VERSION}.jar ${TRAVIS_BUILD_DIR}/packages/${PROJECT_NAME}.jar

     

  1. Skizzieren Sie, wie Sie eine Liste von Dateien und Verzeichnissen angeben, die an den Job angehängt werden sollen, wenn er erfolgreich ist.

      Arbeitsbereiche:

        schaffen:

          Name: Maven-jar-Artefakte

          Wege:

            # Speichern Sie das Artefakt, um den Signaturjob zu verwenden

            – ${TRAVIS_BUILD_DIR}/packages/${PROJECT_NAME}.jar

Skizzieren Sie die Zeichenphase

 – Stufe: Zeichen

  1. Schreiben Sie den Jobnamen

      name: sign-jar-datei

  1. Platzieren Sie die zu verwendende Ubuntu-Distribution

      Abstand: bionisch

  1. Verwenden Sie den Docker-Befehl zum Signieren  

      Leistungen:

        – Docker

     

  1. Definieren Sie Umgebungsvariablen für bestimmte Jobs.
  • Im obigen Screenshot wurde der Sign-Befehl direkt im Sign-Skript und nicht unter Umgebungsvariablen definiert. Both Methoden können mit TravisCI korrekt signieren.

      Umgebung:

        BEFEHL = "Zeichen"

  1. Verwenden Sie dotnet-cli, um das Projekt zu erstellen

      Sprache: Java

  1. Java-Version zum Erstellen des Projekts

      jdk:

      – oraclejdk17

  1. Before-Skript, das vor dem Erstellen des Projekts ausgeführt werden soll

      before_script:

        # Erstellen Sie Verzeichnisse für Artefakte

        – mkdir -p ${TRAVIS_BUILD_DIR}/artifacts

        – mkdir -p ${TRAVIS_BUILD_DIR}/Pakete

     

  1. Skript zum Erstellen des Projekts

      Skript:

        # Docker-Pull-CodeSigner-Docker-Image

        – Docker-Pull ghcr.io/sslcom/codesigner:latest

        # Artefakt mit CodeSigner Docker-Image signieren

        – docker run -i –rm –dns 8.8.8.8 –network host –volume ${TRAVIS_BUILD_DIR}/packages:/codesign/examples

          –Volume ${TRAVIS_BUILD_DIR}/artifacts:/codesign/output

          -e USERNAME=${USERNAME} -e PASSWORD=${PASSWORD} -e CREDENTIAL_ID=${CREDENTIAL_ID} -e TOTP_SECRET=${TOTP_SECRET}

          -e ENVIRONMENT_NAME=${ENVIRONMENT_NAME} ghcr.io/sslcom/codesigner:latest ${COMMAND}

          -input_file_path=/codesign/examples/${PROJECT_NAME}.jar -output_dir_path=/codesign/output

  1. Wird verwendet, um eine Liste von Dateien und Verzeichnissen anzugeben, die an den Job angehängt werden sollen, wenn er erfolgreich ist.

      Arbeitsbereiche:

        benutzen:

          – Maven-jar-Artefakte

        schaffen:

          name: signierte-jar-datei

          Wege:

            # Signiertes Artefakt speichern

            – ${TRAVIS_BUILD_DIR}/artifacts/${PROJECT_NAME}.jar

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!

Definieren Sie die Umgebungsvariablen

Gehen Sie zu Travis und klicken Sie auf die Einstellungen  Taste im nun erscheinenden Bestätigungsfenster nun wieder los.

Fügen Sie den Wert für jede Variable hinzu

Scrollen Sie nach unten zum Umgebungsvariablen Abschnitt und klicken Sie auf die Schaltfläche Hinzufügen, um den Wert für jede Variable hinzuzufügen

Erstellen Sie ein Github-Repository

Suchen Sie nach den Push-Befehlen auf Github

Schreiben Sie die Push-Befehle an einem Terminal auf Ihrem Editor

Warten Sie, bis der Build-Job abgeschlossen ist

Auf Travis sollte der Build-Job automatisch starten, nachdem Sie den Code gepusht haben.

Initiieren Sie die Code Signing-Phase

Klicken Sie auf die Schild Abschnitt für CodeSignTool um den Signiervorgang zu starten

Warten Sie, bis Ihre virtuelle Maschine vollständig gebootet ist

Bestätigen Sie, ob die Codesignatur erfolgreich war

Sie können auf die verweisen SSL.com Github-Repository, das die Quellcodes des Docker-Images enthält und dessen Verwendung beschreibt: https://github.com/SSLcom/ci-images

Beispiel einer Travis CI-Pipeline

Sehen Sie sich die Travis CI-Beispielpipeline an, die wir erstellt haben github.com/SSLcom/codesigner-travisci-sample

Andere CI/CD-Service-Remote-Signatur-Integrationsleitfäden

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.

Abonnieren Sie den Newsletter von SSL.com

Verpassen Sie keine neuen Artikel und Updates von SSL.com

Bleiben Sie informiert und sicher

SSL.com ist ein weltweit führendes Unternehmen im Bereich Cybersicherheit, PKI und digitale Zertifikate. Melden Sie sich an, um die neuesten Branchennachrichten, Tipps und Produktankündigungen von zu erhalten SSL.com.

Wir würden uns über Ihr Feedback freuen

Nehmen Sie an unserer Umfrage teil und teilen Sie uns Ihre Meinung zu Ihrem letzten Kauf mit.