KB Flooris Xelion - Software code signing¶
Business Case¶
Kosten¶
OV Certificaat voor Code Signing
Via Networking4All, GlobalSign Code Signing Organizations.
€ 244,59 per jaar
Azure Key Vault
€ 20 per jaar (hooguit)
Azure Key Vault - Premium
Prijs componenten:
* HSM beschermde sleutels - RSA 2,048-bits sleutels:
€ 0,865 per sleutel per maand
* Sleutel rotatie:
€ 0,865 per geplande rotatie
Beheerde HSM-pools, niet van toepassing ga ik nu van uit!
Gebruikskosten per HSM-pool per uur
Standard B1 €2,768
Flooris Dev Uren
Ik schat in dat we 6 uur per jaar nodig hebben.
Dat is ongeveer:
€ 600 per jaar
Verkoop¶
Huidige opbrengsten
Dit zijn de huidige opbrengsten, waarbij we nog GEEN rekening gehouden hebben met kosten vanuit
Technische informatie¶
Configuratie¶
Microsoft Entra¶
- Ga naar entra.microsoft.com en log in.
- Ga naar Entra ID → App Registrations.
- Klik op New registration.
- Name: Stel zelf een naam in, zelf hadden wij "codesigning-flooris-2025-entra" gebruikt.
- Supported account types: "Accounts in this organizational directory only".
- Redirect URI: Instellen op type "Web" met als URI "https://flooris.nl/microsoft-entra-redirect".
- Klik op Register.
- Je zal nu op de "Overview" pagina zitten, maak hier notities van de volgende waardes:
- Application (client) ID.
- Directory (tenant) ID.
- Klik op Certificates & secrets.
- Klik op New client secret.
- Description: Stel zelf een naam in, zelf hadden wij "Flooris Xelion Notifications signing secret" gebruikt.
- Expires: Stel zelf een passende expiration time in, zelf hadden wij "365 days (12 months)" gebruikt.
- Add
- Maak een notitie van de Value van de key die zojuist is aangemaakt.
Azure Key Vault¶
Scope limitatie
Dit stuk gaat ervan uit dat een Premium Azure Key Vault al bestaat met hierin het Code Signing HSM-certificaat.
- Ga naar portal.azure.com en log in.
- Ga naar je eerder aangemaakte Azure Key Vault.
- Ga naar Settings → Access configuration
- Zet Permission model op Vault access policy
- Ga naar Access policies
- Druk op Create
- Permissions
- Key permissions
- Verify
- Sign
- Get
- List
- Secret permissions
- Get
- List
- Certificate permissions
- Get
- List
- Key permissions
- Principle
- Selecteer hier je Entra, zelf hadden wij "codesigning-flooris-2025-entra" gebruikt
- Create
- Permissions
- Ga naar Overview en maak hier notitie van de volgende waarde:
- Vault URI.
Windows machine¶
Om een applicatie te ondertekenen met het certificaat die is opgeslagen in Azure Key Vault, kan AzureSignTool gebruikt worden.
Deze kan gemakkelijk geïnstalleerd worden via het volgende WinGet commando:
winget install vcsjones.azuresigntool --version v7.0.0
Terminal sessie herstarten
Vergeet niet de terminal sessie te herstarten, anders word je path niet opnieuw geladen en kan hij azuresigntool niet vinden.
Ondertekenen (Signing)¶
Nu de configuratie klaar staat voor gebruik, kunnen wij een applicatie gaan voorzien van ons certificaat om aan te geven dat deze applicatie echt vanuit ons komt en niet ergens tussendoor is aangepast.
In dit voorbeeld gaan wij uit van de Flooris Xelion Notifications applicatie en wordt gebuild vanaf een normale Windows machine. Deze zal in de toekomst automatisch ondertekend worden tijdens het compileren van de applicatie via GitHub Actions.
azuresigntool sign \
-kvu https://codesigning-flooris-2025.vault.azure.net \
-kvc codesigning-flooris-2025-certificate \
-kvt [VUL_DEZE_WAARDE_IN] \
-kvi [VUL_DEZE_WAARDE_IN] \
-kvs [VUL_DEZE_WAARDE_IN] \
-tr http://timestamp.digicert.com \
-v C:\\Users\\flooris\\Projects\\flooris-xelion-notifications\\out\\make\\wix\\x64\\Flooris.Xelion.Notifications.msi
| Parameter | Betekenis |
|---|---|
-kvu |
Dit is de Key Vault URI, deze waarde is terug te vinden bij "Overview" in de Azure Key Vault. |
-kvc |
Dit is de Key Vault Certificate, deze waarde moet overeenkomen met de naam van het certificaat dat je wil gebruiken. |
-kvt |
Dit is de Key Vault Tenant ID, deze waarde is terug te vinden bij "Overview" als "Directory (tenant) ID" in de Entra App. |
-kvi |
Dit is de Key Vault Client ID, deze waarde is terug te vinden bij "Overview" als "Application (client) ID" in de Entra App. |
-kvs |
Dit is de Key Vault Client Secret, deze waarde moet gelijk zijn aan de "Value" van de key die je had aangemaakt bij "Certificates & secrets" in de Entra App. |
-tr |
Dit is de URL naar een RFC3161 compliant timestamping service, kan gewoon die van DigiCert zijn. |
-v |
Dit is het pad naar het bestand dat moet worden voorzien van het certificaat. |