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.
Bereiten Sie die Komponenten des Workflows vor (.NET-Code-DLL-Signierung)
- Erstellen Sie einen .circleci-Ordner
Erstellen Sie in Ihrem Codesignatur-Arbeitsbereich eine .circleci-Ordner. Erstellen Sie darunter eine config.yml-Datei.
- Legen Sie die CI-Version fest
Version: 2.1
- Rufen Sie Jobs über Workflows auf. Workflows orchestrieren eine Reihe von Jobs, die ausgeführt werden sollen. Die Jobs für diese Pipeline werden unten konfiguriert
Siehe: https://circleci.com/docs/2.0/configuration-reference/#workflows
Arbeitsabläufe:
- Schreiben Sie den Namen des Workflows.
Punkt net:
- Innerhalb des Workflows definieren Sie die Jobs, die Sie ausführen möchten.
Jobs: - Bauen - Zeichen: erfordert: - Bauen
Definieren Sie die Build-Phase
- Definieren Sie einen Job, der später in einem Workflow aufgerufen werden soll.
(Siehe: https://circleci.com/docs/2.0/configuration-reference/#jobs)
Jobs: bauen:
- Erstellen Sie eine Umgebungsvariable
- Umgebungsvariablen werden verwendet, um die Beispiele besser lesbar zu machen. Im obigen Screenshot eines beispielhaften Signatur-Workflows wurden PROJECT_NAME, PROJECT_VERSION und DOTNET_VERSION optional weggelassen. Die Unterzeichnung kann auch mit diesen Auslassungen fortgesetzt werden.
Umgebung: PROJECT_NAME: HelloWorld PROJECT_VERSION: 0.0.1 DOTNET_VERSION: 3.1 WORKSPACE: /home/circleci/project
- Definieren Sie einen Docker-Executor: (https://circleci.com/docs/2.0/executor-types/)
# Sie können ein Image von Dockerhub angeben oder eines unserer praktischen Images aus dem Developer Hub von CircleCI verwenden.
Docker: - Bild: mcr.microsoft.com/dotnet/sdk:3.1-bullseye
- Legen Sie das Arbeitsverzeichnis für den Job ab
Arbeitsverzeichnis: /home/circleci/project
- Fügen Sie dem Job Schritte hinzu
Siehe: https://circleci.com/docs/2.0/configuration-reference/#steps
Schritte:
- Checken Sie den Quellcode aus, damit der Workflow darauf zugreifen kann.
- Auschecken
- Erstellen Sie ein Artefaktverzeichnis, um signierte und unsignierte Artefaktdateien zu speichern
- run: name: Create Artifacts Directory Befehl: | mkdir -p ${WORKSPACE}/artifacts mkdir -p ${WORKSPACE}/packages
- Erstellen Sie ein dotnet-Projekt oder eine dotnet-Lösung und alle ihre Abhängigkeiten.
- run: name: Build Dotnet Project Command: dotnet build dotnet/${PROJECT_NAME}.csproj -c Release
- Artefakt in das Artefaktverzeichnis kopieren
- In diesem Beispielworkflow für die schriftliche Unterzeichnung wurden mehrere Projekttypen erstellt. Aus diesem Grund wurden Dateien unterschiedlicher Projekttypen durch das Anlegen von Unterordnern gehalten. Für Dotnet-Projekte wurde ein Unterordner mit dem Namen „dotnet“ erstellt. Im obigen Demo-Screenshot musste kein Unterordner mit dem Namen „dotnet“ erstellt werden, sodass dieser nicht im Skript enthalten war.
- run: name: Artefakte kopieren Befehl: | cp dotnet/bin/Release/netcoreapp${DOTNET_VERSION}/${PROJECT_NAME}-${PROJECT_VERSION}.dll ${WORKSPACE}/packages/HelloWorld.dll
- Speichern Sie das Artefakt zum Signieren im Artefaktverzeichnis
- persist_to_workspace: root: . Pfade: - Pakete/*
Definieren Sie die Unterzeichnungsphase
- Definieren Sie den Signierauftrag
Schild:
- Erstellen Sie eine Umgebungsvariable
- Im obigen Screenshot wurde der Sign-Befehl direkt im Sign-Skript und nicht unter Umgebungsvariablen definiert. BAndere Methoden können mit CircleCI korrekt signieren.
- Umgebungsvariablen werden verwendet, um die Beispiele besser lesbar zu machen. Im obigen Screenshot des Beispiel-Workflows wurden einige Variablen optional nicht einbezogen. Die Unterzeichnung kann auch mit diesen Auslassungen fortgesetzt werden.
Umgebung: ENVIRONMENT_NAME: PROD COMMAND: Zeichen WORKSPACE: /home/circleci/project
- Legen Sie das Arbeitsverzeichnis für den Job auf Circle-CI ab
Arbeitsverzeichnis: /home/circleci/project
- Artefaktname zum Signieren
- Der Wert „artifact-name“ ist eine Option für mehrere Projekte. Der Parameter „artifact-name“ wurde hinzugefügt, damit derselbe Signaturteil für alle Projekttypen verwendet werden kann. Da das Beispiel im Screenshot auf einem einzelnen Projekt basiert, war es nicht notwendig, es einzubinden.
parameter: artefaktname: typ: string default: ''
- Definieren Sie einen Docker-Executor:
Weitere Referenzen finden Sie unter: https://circleci.com/docs/2.0/executor-types/
Sie können ein Image von Dockerhub angeben oder eines unserer praktischen Images aus dem Developer Hub von CircleCI verwenden.
Stellen Sie sicher, dass Sie das Docker-Image-Tag unten auf die openjdk-Version Ihrer Anwendung aktualisieren.
Eine Liste der verfügbaren CircleCI Docker Convenience Images finden Sie hier: https://circleci.com/developer/images/image/cimg/openjdk
Docker: - Bild: cimg/openjdk:17.0.3
- Fügen Sie dem Job Schritte hinzu
Weitere Referenzen finden Sie unter: https://circleci.com/docs/2.0/configuration-reference/#steps
Schritte:
- Erstellen Sie ein Artefaktverzeichnis, um signierte und unsignierte Artefaktdateien zu speichern
- run: name: Create Artifacts Directory Befehl: | mkdir -p ${WORKSPACE}/artifacts mkdir -p ${WORKSPACE}/packages
- An Workspace anhängen, um auf die Artefaktdatei zuzugreifen
- Attach_Workspace: unter: /home/circleci/project
- Aktivieren Sie Docker für CodeSigner auf Circle-CI
- setup_remote_docker: name: Remote-Docker-Version einrichten: 19.03.13 docker_layer_caching: true
- Ziehen Sie das Codesigner-Docker-Image aus der Github-Registrierung
- run: Name: Docker-Pull-Image-Befehl: | Docker-Pull ghcr.io/sslcom/codesigner:Neuester Docker-Pull Alpine:3.4
- Schreiben Sie den Schritt, in dem das Artefakt mit CodeSignTool signiert wird.
- run: name: Artefaktdatei signieren Befehl: | docker create -v /codesign/packages --name codesign-in alpine:3.4 /bin/true docker create -v /codesign/artifacts --name codesign-out alpine:3.4 /bin/true docker cp ${WORKSPACE}/packages /<< parameter.artifact-name >> codesign-in:/codesign/packages docker run -i --rm --dns 8.8.8.8 --network host --volumes-from codesign-in --volumes-from codesign- out -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/packages/<< parameter.artifact-name >> -output_dir_path=/codesign/artifacts docker cp codesign-out:/codesign/artifacts/<< parameter.artifact-name >> ${ WORKSPACE}/artifacts/<< parameter.artifact-name >>
- Schreiben Sie den Schritt für Ihr Artefakt, das aus Ihrem Workflow hochgeladen werden soll, sodass Sie Daten zwischen Jobs austauschen und Daten speichern können, sobald ein Workflow abgeschlossen ist
- store_artifacts: name: Signierte Dateien hochladen Pfad: /home/circleci/project/artifacts/<< parameter.artifact-name >> Ziel: << parameters.artifact-name >>
Erstellen Sie ein neues Repository in der Befehlszeile
Kopieren Sie die Push-Befehlskomponenten vom Speicherort Ihres Projekts in Ihr GitHub-Konto
Schließen Sie alle Push-Befehlskomponenten in Ihren Editor ein
Richten Sie ein Projekt auf CircleCI ein, indem Sie das in GitHub integrierte Repository verwenden
Definieren Sie alle Umgebungsvariablen
Klicken Sie, während das Projekt ausgeführt wird, auf die Schaltfläche Projekteinstellungen und dann auf Umgebungsvariablen, um die Variablen zu definieren
Platzieren Sie die Werte für jede Variable
Klicken Sie auf die Umgebungsvariable hinzufügen Schaltfläche, um die Namen und Werte aller für das Projekt erforderlichen Variablen hinzuzufügen.
Warten Sie, bis das Projekt erstellt wurde
Klicken Sie auf Persisting to workspace
Warten Sie kurz, bis das Workspace-Archiv erfolgreich hochgeladen wurde.
Klicken Sie auf die Schaltfläche „Signieren“.
Warten Sie, bis der Remote Docker eingerichtet ist
Je nach Größe der Datei kann es länger als eine Minute dauern
Warten Sie, bis die Artefakte signiert sind
Klicken Sie Artifacts Tab
Wenn Sie Artifacts, können Sie die Datei sehen, die Sie erfolgreich mit Code signiert haben. Sie werden auch von CircleCI über die erfolgreiche Codesignierung benachrichtigt.
Beispiel einer CircleCI-Pipeline
Sehen Sie sich die von uns erstellte Beispiel-CircleCI-Pipeline an github.com/SSLcom/codesigner-circleci-sampleAndere CI/CD-Remote-Signatur-Integrationsleitfäden
- Cloud Code Signing-Integration mit GitHub-Aktionen
- Cloud Code Signing-Integration mit GitLab CI
- Cloud Code Signing-Integration mit Jenkins CI
- Cloud Code Signing-Integration mit Travis CI
- Cloud Code Signing-Integration mit Azure DevOps
- Cloud Code Signing-Integration mit BitBucket
- Cloud Code Signing-Automatisierung mit CI/CD-Diensten
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.