Windows Applikationen signieren
In diesem Artikel wird beschrieben, wie über die Gitlab CI/CD Pipeline Windows Applikationen signiert werden. Hierfür wird Azure Artifact Signing verwendet. Die Zertifikate werden über unseren Microsoft Partner Tenant erstellt, dementsprechend, ist die Pipeline an das Azure der iteasit.onmicrosoft.com Domain angebunden.
Grundlegendes Setup
Im Iteas Partner Tenant Azure gibt es einen Artifact Signing Service. Zusätzlich muss mindestens ein User die Rolle " Artifact Signing Identity Verifier" im Service haben. Doku
Signiert werden kann unter den Namen iteasit.onmicrosoft.com für interne Verwendung und ITeas IT Service Gmbh für externe Verwendung. Validiert wurde die Identität von Simon Psenner simon.psenner@iteas.at.
Es sind 2 Profile eingerichtet, einmal ein Test- und einmal ein Produktionsprofil für Zertifikate.
Apps Signieren
Grundlegender Ablauf
Für die Pipeline ist ein Appzugang in Azure angelegt. Hier wird ein Accesstoken angefordert, mit dem bei Azure Zugriff für die Zertifikatsressource angefordert wird. Mit dem Azure Token, kann dann auf die Ressource (Zertifikate) zugegriffen werden.

Azure
Im Iteas Partner Tenant ist eine Applikation (App Registrations) im Entra GitLabCI-TrustedSigning angelegt. Diese ist im Azure im IAM die Rolle Artifact Signing Certificate Profile Signer zugewiesen. Die GitLabCI-TrustedSigning wird als Service Principal gelistet. Für die App muss ein Secret (Login) generiert werden. Dies ist zeitlich limitert (180 Tage).
Gitlab
In einer Pipline muss das signtool von Micorosft installiert sein. Ein Beispiel für eine automatische Prüfung und Installation findet sich beim EDBS Rest Server Projekt. Hier wird geprüft ob ein signtool vorhanden ist und ggf. installiert. Zusätzlich wird über Variablen (entweder Gitlab CI Variablen oder den Vault) der Azure Tenant, Service Principal ID und Client Secret gesetzt. Zusätzlich muss noch der Endpunkt für die Zertifikatsressource angegeben werden. So wie der Zertifikatsaccount name und der zu verwendende Profilname.
Danach stehen die Signierten Dateien als Artifacts in der Pipeline zur Verfügung.
