Anwendungsbereich
- Name: Artefakt mit CodeSignTool signieren
verwendet: sslcom/actions-codesigner@develop
mit:
- CodeSignTool-Befehle:
- get_credential_ids
: Gibt die Liste der eSigner-Anmeldeinformationen aus, die einem Benutzer zugeordnet sind.
- credential_info
: Geben Sie Schlüssel- und Zertifikatsinformationen in Bezug auf eine Anmeldeinformations-ID aus.
- sign
: Codeobjekt für Vorzeichen und Zeitstempel.
- batch_sign
: Signieren und Zeitstempeln mehrerer Codeobjekte mit einem OTP.
- hash
: Berechnen Sie Hash(s) für die spätere Verwendung mit dem Befehl batch_hash_sign vor.
- batch_sign_hash
: Mit dem Hash-Befehl vorberechnete Hash(s) signieren.
Befehl: Schild
- Benutzername des SSL.com-Kontos.
username: ${{secrets.ES_USERNAME}}
- Kennwort für das SSL.com-Konto.
password: ${{secrets.ES_PASSWORD}}
- Anmelde-ID zum Signieren des Zertifikats.
credential_id: ${{secrets.CREDENTIAL_ID}}
- OAuth TOTP-Geheimnis (https://www.ssl.com/how-to/automate-esigner-ev-code-signing)
totp_secret: ${{secrets.ES_TOTP_SECRET}}
- Pfad des zu signierenden Codeobjekts.
file_path: ${GITHUB_WORKSPACE}/test/src/build/HelloWorld.jar
- Verzeichnis, in das signierte Codeobjekte geschrieben werden.
output_path: ${GITHUB_WORKSPACE}/artifacts
Eingänge
- Benutzername: Benutzername des SSL.com-Kontos. (Erforderlich)
- Passwort: Kennwort für das SSL.com-Konto (erforderlich)
- Anmeldeinformations-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)
- Dateipfad: Pfad des zu signierenden Codeobjekts. (Erforderlich)
- Ausgabepfad: 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
Bereiten Sie die Komponenten des Workflows vor
- Erstellen Sie einen Github-Ordner in Ihrem Editor. Schließen Sie Workflows mit dem Ordner ein und erstellen Sie eine YML-Datei unter dem Ordner.
- Benennen Sie Ihr Projekt und die Art des betroffenen Workflows
Name: Maven bauen und signieren
- Lösen Sie diesen Workflow bei einem Push aus
ein: drücken
- Erstellen Sie eine Umgebungsvariable
- Umgebungsvariablen werden verwendet, um die Beispiele besser lesbar zu machen. Im obigen Screenshot des Beispielworkflows wurden PROJECT_NAME, PROJECT_VERSION und MAVEN_VERSION optional weggelassen. Die Unterzeichnung kann auch mit diesen Auslassungen fortgesetzt werden.
env: PROJECT_NAME: HelloWorld PROJECT_VERSION: 0.0.1 MAVEN_VERSION: 3.8.5 JAVA_VERSION: 17
- Definieren Sie die Jobs in Ihrem Editor
Jobs: build-and-sign-jar:
- Führen Sie den Job auf Ubuntu Runner aus
Läuft auf: ubuntu-neueste
- Erstellen Sie einen Namen. Wenn der Arbeitsablauf ausgeführt wird, ist dies der Name, der protokolliert wird.
Name: CodeSigner auf Java mit Maven
Skizzieren Sie die Schritte zum Auschecken des Quellcodes, zum Einrichten der Java- und Maven-Umgebung und zum Erstellen des Artifact-Verzeichnisses.
1) Checken Sie den Quellcode aus, damit der Workflow darauf zugreifen kann.
Schritte: - verwendet: Aktionen/checkout@v2
2) Richten Sie die Java- und Maven-Umgebung für den zu verwendenden Workflow ein.
- Name: Maven installieren und Java verwendet: s4u/setup-maven-action@v1.3.1 mit: Java-Version: '${{env.JAVA_VERSION}}' Maven-Version: '${{env.MAVEN_VERSION}}'
3) Erstellen Sie ein Artefaktverzeichnis, um signierte und unsignierte Artefaktdateien zu speichern
- name: Verzeichnis erstellen Shell: bash run: | mkdir ${GITHUB_WORKSPACE}/artifacts mkdir ${GITHUB_WORKSPACE}/packages
4) Erstellen Sie ein Maven-Projekt oder eine Lösung und alle ihre Abhängigkeiten.
Nachdem die JAR-Datei erstellt wurde, kopieren Sie sie zum Signieren in den Ordner „packages“.
- 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 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.
- name: Java-Projekt-Shell erstellen: bash run: | mvn clean install -f java/pom.xml cp java/target/${{env.PROJECT_NAME}}-${{env.PROJECT_VERSION}}.jar ${GITHUB_WORKSPACE}/packages/${{env.PROJECT_NAME}}. Krug
Skizzieren Sie die Schritte für die Sign- und Upload-Jobs
- Der Sign-Job ist der Schritt, in dem die erstellten JAR-Dateien (Artefaktdateien) mit CodeSignTool signiert werden.
- Name: Sign Artifact verwendet: sslcom/actions-codesigner@develop mit:
Zeichen- und Zeitstempelcodeobjekt.
Befehl: Zeichen
Benutzername des SSL.com-Kontos.
Benutzername: ${{secrets.ES_USERNAME}}
Kennwort für das SSL.com-Konto.
Passwort: ${{secrets.ES_PASSWORD}}
Anmelde-ID zum Signieren des Zertifikats.
credential_id: ${{secrets.CREDENTIAL_ID}}
OAuth TOTP-Geheimnis (https://www.ssl.com/how-to/automate-esigner-ev-code-signing)
totp_secret: ${{secrets.ES_TOTP_SECRET}}
Pfad des zu signierenden Codeobjekts. (DLL-, JAR-, EXE-, MSI-Dateien vb…)
Dateipfad: ${GITHUB_WORKSPACE}/packages/${{env.PROJECT_NAME}}.jar
Verzeichnis, in das signierte Codeobjekte geschrieben werden.
Ausgabepfad: ${GITHUB_WORKSPACE}/artifacts
- Der Upload-Job ist der Schritt, in dem Artefakte aus Ihrem Workflow hochgeladen werden, sodass Sie Daten zwischen Jobs austauschen und Daten speichern können, sobald ein Workflow abgeschlossen ist
- Name: Signierte Dateien hochladen verwendet: actions/upload-artifact@v2 mit: Name: ${{env.PROJECT_NAME}}.jar Pfad: ./artifacts/${{env.PROJECT_NAME}}.jar
Holen Sie sich einen Build-Artefakt-Uploader von Github Marketplace
Überprüfen Sie Ihr Codierungsskript
Insgesamt sollte das Codierungsskript für die Erstellungs-, Signierungs- und Upload-Jobs wie in der Abbildung unten aussehen. Achten Sie darauf, alle Fehler wie falsche Rechtschreibung oder fehlerhafte Zeilenumbrüche im Skript zu korrigieren, damit der Signiervorgang reibungslos abläuft.
Definieren Sie Ihre Umgebungsvariablen
Gehen Sie in Ihrem Github-Konto zum Speicherort Ihres Projekts. Drücke den Aktionen Tab. Drücke den Neues Repository-Geheimnis Schaltfläche, um die Werte für jede Umgebungsvariable zu platzieren, die zum Signieren Ihres Codes erforderlich ist.
Erstellen Sie ein neues Repository in der Befehlszeile
Gehen Sie zum Speicherort Ihres Projekts auf Github und kopieren Sie jede Komponente des Push-Befehls.
Pushen Sie das Projekt
Fügen Sie jede Push-Befehlszeile in Ihren Code-Editor ein. Nach Abschluss wird der Code automatisch auf Github gepusht.
Warten Sie, bis das Artefakt mit eSigner CodeSignTool signiert wurde
Laden Sie die signierte Datei hoch
Klicken Sie auf die signierte Datei, um sie hochzuladen.
Beispiel einer Github-Aktionspipeline
Sehen Sie sich die von uns erstellte Beispiel-Pipeline für Github-Aktionen an github.com/SSLcom/codesigner-github-sample
Andere CI/CD-Remote-Signatur-Integrationsleitfäden
- Cloud Code Signing-Integration mit CircleCI
- 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-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.