Skip to content

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

  1. Ga naar entra.microsoft.com en log in.
  2. Ga naar Entra IDApp Registrations.
  3. Klik op New registration.
    1. Name: Stel zelf een naam in, zelf hadden wij "codesigning-flooris-2025-entra" gebruikt.
    2. Supported account types: "Accounts in this organizational directory only".
    3. Redirect URI: Instellen op type "Web" met als URI "https://flooris.nl/microsoft-entra-redirect".
    4. Klik op Register.
  4. Je zal nu op de "Overview" pagina zitten, maak hier notities van de volgende waardes:
    1. Application (client) ID.
    2. Directory (tenant) ID.
  5. Klik op Certificates & secrets.
  6. Klik op New client secret.
    1. Description: Stel zelf een naam in, zelf hadden wij "Flooris Xelion Notifications signing secret" gebruikt.
    2. Expires: Stel zelf een passende expiration time in, zelf hadden wij "365 days (12 months)" gebruikt.
    3. Add
  7. 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.

  1. Ga naar portal.azure.com en log in.
  2. Ga naar je eerder aangemaakte Azure Key Vault.
  3. Ga naar SettingsAccess configuration
    1. Zet Permission model op Vault access policy
  4. Ga naar Access policies
  5. Druk op Create
    1. Permissions
      1. Key permissions
        1. Verify
        2. Sign
        3. Get
        4. List
      2. Secret permissions
        1. Get
        2. List
      3. Certificate permissions
        1. Get
        2. List
    2. Principle
      1. Selecteer hier je Entra, zelf hadden wij "codesigning-flooris-2025-entra" gebruikt
    3. Create
  6. Ga naar Overview en maak hier notitie van de volgende waarde:
    1. 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.