en English
X

Select Language

Powered by Google TranslateTranslate

We hope you will find the Google translation service helpful, but we don’t promise that Google’s translation will be accurate or complete. You should not rely on Google’s translation. English is the official language of our site.

en English
X

Select Language

Powered by Google TranslateTranslate

We hope you will find the Google translation service helpful, but we don’t promise that Google’s translation will be accurate or complete. You should not rely on Google’s translation. English is the official language of our site.

Cloud Code Signing-Integration mit Jenkins CI

Dies ist eine Anleitung zum automatisierten Signieren von Code auf Jenkins mithilfe von eSigner CodeSignTool.

CodeSignTool ist ein Befehlszeilendienstprogramm, das sich für Signaturen mit hohem Volumen eignet und sich nahtlos in verschiedene CI/CD-Plattformen integrieren lässt. Es ist Teil von eSigner: unserem Remote-Signaturdienst, der einen effizienten, sicheren und benutzerfreundlichen Ansatz für das Signieren von Unternehmenscodes bietet.

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!

Erstellen Sie eine Jenkins-Datei und definieren Sie die Pipeline in Ihrem Code-Editor

Pipeline {Agent beliebige Optionen {buildDiscarder(logRotator(numToKeepStr: "5")) disableConcurrentBuilds() }

Richten Sie das .NET-Tool in Ihrem Code-Editor ein, indem Sie Jenkins konfigurieren

Klicken Sie auf die Verwalte Jenkins Registerkarte auf Ihrem Jenkins-Dashboard.

Scrollen Sie auf der Seite nach unten und klicken Sie auf Global Tool Configuration.

Scrollen Sie nach unten und klicken Sie auf .NET SDK-Installationen.

Kopieren Sie den Wert für .NET SDK und fügen Sie ihn in Ihren Code-Editor ein.

Tools { dotnetsdk "DOTNET_CORE_3.1.24" }

Gehen Sie zu plugins.jenkins.io und installieren Sie das .NET SDK-Plugin

Der Verwalte Jenkins Überprüfen Sie auf Ihrem Dashboard Plugins verwalten um zu bestätigen, ob das .NET SDK-Plugin installiert wurde.

Nachdem Sie bestätigt haben, dass das Plugin installiert wurde, gehen Sie zurück zu .NET SDK-INSTALLATIONEN und stellen Sie sicher, dass die richtige Version und die Release-Details des .NET SDK-Plugins eingestellt sind. Fahren Sie mit dem Klicken fort Sie sparen .

Legen Sie die Umgebungsvariablen in Ihrem Code-Editor fest

Umgebung { BENUTZERNAME = Anmeldeinformationen ('es-Benutzername') // Benutzername des SSL.com-Kontos. PASSWORD = Credentials('es-password') // Passwort für das SSL.com-Konto. CREDENTIAL_ID = Credentials('es-crendential-id') // Credential-ID zum Signieren des Zertifikats. TOTP_SECRET = Credentials('es-totp-secret') // OAuth TOTP Secret (https://www.ssl.com/how-to/automate-esigner-ev-code-signing) ENVIRONMENT_NAME = 'PROD' // SSL .com-Umgebungsname. Für das Demo-Konto kann es 'TEST' sein, andernfalls 'PROD' }

Sie finden die Werte für jede Variable auf Ihrem Jenkins-Dashboard unter Sicherheit> Verwalten Referenzen.

Legen Sie die Phasen für das Erstellen des Artefaktverzeichnisses, das Pullen des Docker-Images, das Erstellen von .NET und das Code-Signieren des Artefakts fest

 

        1) Artefaktverzeichnis erstellen, um signierte und unsignierte Artefaktdateien zu speichern.
 stage('Artefaktverzeichnis erstellen') { Schritte { sh 'mkdir ${WORKSPACE}/artifacts' sh 'mkdir ${WORKSPACE}/packages' } }
        2) Ziehen Sie das Codesigner-Docker-Image aus der Github-Registrierung.
stage('Docker Pull Image') { steps { sh 'docker pull ghcr.io/sslcom/codesigner:latest' } }
        3) Erstellen Sie ein dotnet-Projekt oder eine Dotnet-Lösung und alle ihre Abhängigkeiten. Nachdem die DLL- oder EXE-Datei erstellt wurde, kopieren Sie sie zum Signieren in den Ordner „packages“.
stage('Build Dotnet') { steps { sh 'dotnet build dotnet/HelloWorld.csproj -c Release' sh 'cp dotnet/bin/Release/netcoreapp3.1/HelloWorld-0.0.1.dll ${WORKSPACE}/packages/ HelloWorld.dll' } }
        4) In diesem Schritt werden die erstellten DLL-Dateien (Artefaktdateien) mit CodeSignTool signiert.
stage('Sign and Save Dotnet Core DLL Artifact') { steps { sh 'docker run -i --rm --dns 8.8.8.8 --network host --volume ${WORKSPACE}/packages:/codesign/examples -- Volume ${WORKSPACE}/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 sign -input_file_path=/codesign/examples/HelloWorld.dll -output_dir_path=/codesign/output' } post { always { archiveArtifacts artifacts: "artifacts/HelloWorld.dll", onlyIfSuccessful: true } } } } }
 

Erstellen Sie ein Github-Repository

Kopieren Sie jede der Push-Befehlskomponenten auf Github.

Schreiben Sie die Befehle an einem neuen Terminal in Ihrem Code-Editor, um den Code zu pushen.

Gehen Sie nach dem Pushen des Codes zu Ihrem Github-Konto und kopieren Sie den URL-Link Ihres Projekts.

Gehen Sie zu Ihrem Jenkins-Konto und klicken Sie auf die Erstellen Sie einen Job Link.

Auswählen  Multibranch-Pipeline, Legen Sie den Namen für Ihr Projekt fest und klicken Sie auf OK .

Der BranchenquellenWählen Git und fügen Sie den URL-Link Ihres Github-Projekts ein.

Scrollen Sie nach unten Scannen Sie Multibranch-Pipeline-Trigger. Aktivieren Sie das Kontrollkästchen für Periodisch, wenn nicht anders ausgeführt. Sie können auswählen 2 Мinuten.

Klicken Sie auf die Sie sparen .

Gehen Sie zurück zu Ihrem Jenkins-Konto, klicken Sie auf Ihr Projekt und bestätigen Sie, ob die Pipeline gestartet wurde

Klicken Sie auf Ihr Jenkins-Projekt und wählen Sie es aus Jetzt Multibranch-Pipeline scannen im Dashboard.

Klicken Sie Konsolenausgabe

Scrollen Sie nach unten und prüfen Sie, ob die Code-Signierung erfolgreich war

Gesamtes Skript

Hinweis: Achten Sie darauf, Tippfehler oder fehlerhafte Zeilenumbrüche im Skript zu korrigieren, damit der Signiervorgang reibungslos abläuft.

Definieren Sie die Pipeline

Pipeline {Agent beliebige Optionen {buildDiscarder(logRotator(numToKeepStr: "5")) disableConcurrentBuilds() }

Build-Tools installieren

Tools { dotnetsdk "DOTNET_CORE_3.1.24" //https://plugins.jenkins.io/dotnet-sdk }

Erstellen Sie eine Umgebungsvariable

Umgebung { BENUTZERNAME = Anmeldeinformationen ('es-Benutzername') // Benutzername des SSL.com-Kontos. PASSWORD = Credentials('es-password') // Passwort für das SSL.com-Konto. CREDENTIAL_ID = Credentials('es-crendential-id') // Credential-ID zum Signieren des Zertifikats. TOTP_SECRET = Credentials('es-totp-secret') // OAuth TOTP Secret (https://www.ssl.com/how-to/automate-esigner-ev-code-signing) ENVIRONMENT_NAME = 'PROD' // SSL .com-Umgebungsname. Für das Demo-Konto kann es 'TEST' sein, andernfalls 'PROD' }

Skript für die Phasen Build und Sign

stages { // 1) Artefaktverzeichnis zum Speichern von signierten und unsignierten Artefaktdateien erstellen stage('Artefaktverzeichnis erstellen') { steps { sh 'mkdir ${WORKSPACE}/artifacts' sh 'mkdir ${WORKSPACE}/packages' } } / / 2) Codesigner-Docker-Image aus der Github-Registrierung ziehen stage('Docker Pull Image') { steps { sh 'docker pull ghcr.io/sslcom/codesigner:latest' } } // 3) Erstellen Sie ein Dotnet-Projekt oder eine Dotnet-Lösung und all das seine Abhängigkeiten. // Nachdem die DLL- oder Exe-Datei erstellt wurde, kopieren Sie sie zum Signieren in den Ordner „packages“. Release/netcoreapp3.1/HelloWorld-0.0.1.dll ${WORKSPACE}/packages/HelloWorld.dll' } } // 4) In diesem Schritt werden die erstellten DLL-Dateien (Artefaktdateien) mit CodeSignTool signiert. stage('Sign and Save Dotnet Core DLL Artifact') { steps { sh 'docker run -i --rm --dns 8.8.8.8 --network host --volume ${WORKSPACE}/packages:/codesign/examples -- Volume ${WORKSPACE}/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 sign -input_file_path=/codesign/examples/HelloWorld.dll -output_dir_path=/codesign/output' } post { always { archiveArtifacts artifacts: "artifacts/HelloWorld.dll", onlyIfSuccessful: true } } } } }
Sie können auf die verweisen SSL.com Github repository which contains the source codes of the docker image and describes how to use it: https://github.com/SSLcom/ci-images 

Beispiel einer Jenkins-Pipeline

Sehen Sie sich die Beispiel-Jenkins-Pipeline an, die wir erstellt haben github.com/SSLcom/codesigner-jenkins-sample

Andere Leitfäden zur Integration von Remote-Signaturen

Wenden Sie sich für Informationen zu einem eSigner-Abonnement und Codesignaturzertifikaten, einschließlich hochvolumiger und kundenspezifischer Lösungen, bitte an  oder füllen Sie das untenstehende Formular aus.  

Abonnieren Sie den Newsletter von SSL.com

Verpassen Sie keine neuen Artikel und Updates von SSL.com