Opret CSR til Code Signing i Azure Key Vault Premium
Denne side er til den person, der skal oprette CSR'en. Den dækker præcis det, der skal gøres i Azure Key Vault, fra oprettelse af nøglen til det færdige certifikat er flettet ind og klar til brug. Gælder både DigiCert og GlobalSign, OV og EV.
Skal du også sætte signering op med AzureSignTool, service principals og CI/CD, findes det i den fulde opsætningsguide til Azure Key Vault.
Læs dette først: det skal være en Premium Key Vault
Den hyppigste fejl er, at der oprettes en Key Vault på prisniveauet Standard. En Standard Key Vault kan ikke lave HSM-beskyttede nøgler. Valget RSA-HSM mangler simpelthen, og man kommer i stedet til at vælge almindelig RSA. Så ligger den private nøgle i software, certifikatet kan ikke udstedes, og hele opsætningen skal laves om.
Prisniveauet kan ikke ændres i Azure-portalen. En Standard-vault kan kun opgraderes til Premium via kommandolinjen, og en nøgle, der allerede er oprettet som software-nøgle, bliver ikke HSM-beskyttet af en opgradering. Kontrollér prisniveauet, før du opretter certifikatet. Se trin 1.
Kort fortalt
- ✓ Key Vault skal være Premium. En Standard Key Vault kan ikke oprette RSA-HSM-nøgler
- ✓ Du skal have Key Vault Administrator på selve vault'en, ikke kun på abonnementet
- ✓ Nøglen skal være 4096 bit RSA-HSM og må ikke kunne eksporteres
- ✓ En teknisk ansvarlig skal underskrive en HSM-erklæring til CA'en
- ✓ Tidspunktet for hvornår CSR'en afleveres er forskelligt hos DigiCert og GlobalSign
Rækkefølgen er ikke ens hos DigiCert og GlobalSign
Selve opsætningen i Azure er den samme uanset CA. Men tidspunktet, hvor CSR'en skal bruges, er forskelligt. Læs det afsnit, der passer til jeres ordre.
DigiCert: CSR'en skal være klar først
- Opret nøglen og CSR'en i Key Vault. Se trin 1 til 3 herunder
- Aflever CSR'en, se trin 4. Ordren kan ikke oprettes hos DigiCert uden en CSR
- Organisationsvalideringen går i gang, og HSM-erklæringen underskrives
- Når valideringen er godkendt, udstedes certifikatet og sendes til jer
- Flet certifikatet ind i Key Vault. Se trin 5
GlobalSign: validering først, CSR bagefter
- Ordren oprettes uden CSR
- I modtager dokumenter til underskrift og dato, og HSM-erklæringen underskrives
- Godkenderen bliver ringet op på virksomhedens hovednummer eller kontaktet på e-mailadressen fra CVR og skal bekræfte, at virksomheden har bestilt certifikatet
- Når valideringen er godkendt, sender GlobalSign et udstedelseslink til godkenderens e-mail, sammen med en engangskode
- Først dér skal CSR'en bruges. Opret nøglen og CSR'en i Key Vault, se trin 1 til 3, og indsend CSR'en via linket, se trin 4
- Certifikatet udstedes med det samme. Flet det ind i Key Vault, se trin 5
Et direkte nummer kan kun bruges, hvis det oplyses via hovednummeret. Er der bestemte tidsrum, hvor godkenderen kan træffes, eller skal man taste noget bestemt i omstillingen, så giv os besked, så vi videregiver det.
Slet ikke det ventende certifikat i Key Vault, mens I venter. Det udstedte certifikat kan kun flettes ind i præcis den ventende anmodning, CSR'en kom fra. Opretter du certifikatet forfra, får du en ny nøgle, og det udstedte certifikat kan ikke bruges.
Trin 1: Kontrollér at Key Vault er Premium
Åbn Key Vault-ressourcen i Azure-portalen og se under Overview, at prisniveauet er Premium. En Standard Key Vault kan kun lave softwarebeskyttede nøgler, og valget RSA-HSM vil mangle i trin 3.
Skal der oprettes en ny vault, kan det gøres fra portalen eller med Azure CLI:
az keyvault create \ --name jeres-codesign-vault \ --resource-group jeres-resource-group \ --location westeurope \ --sku premium \ --enable-purge-protection true
Har I allerede en Standard Key Vault, kan prisniveauet opgraderes til Premium fra kommandolinjen. Det kan ikke gøres i Azure-portalen:
az keyvault update \ --name jeres-codesign-vault \ --resource-group jeres-resource-group \ --set properties.sku.name=premium
Nøgler, der allerede er oprettet som software-nøgler, bliver ikke HSM-beskyttede af en opgradering.
Trin 2: Sørg for de rigtige rettigheder
Azure Key Vault har en separat tilladelsesmodel til certifikater og nøgler. At være Owner eller Contributor på abonnementet giver ikke adgang til at oprette certifikater inde i vault'en. Rettigheden skal ofte tilføjes specifikt, ud over de administratorrettigheder man allerede har.
Ved RBAC som tilladelsesmodel
Tildel rollen Key Vault Administrator på Key Vault-ressourcen: Key Vault → Access control (IAM) → Add role assignment → Key Vault Administrator → vælg din bruger. Rolletildelinger kan tage op til 10 minutter, før de virker.
Ved access policies som tilladelsesmodel
Tilføj en access policy til din bruger med certifikatrettighederne Get, List, Create, Update og Import, samt nøglerettighederne Get, List og Create.
Trin 3: Opret certifikatet og hent CSR'en
Gå til Key Vault → Certificates → Generate/Import.
Create a certificate
- Method of Certificate Creation: Generate
- Certificate Name: jeres interne navn, f.eks.
codesign-2026 - Type of Certificate Authority (CA): Certificate issued by a non-integrated CA
- Subject:
CN=Jeres fulde navn i CVR, uden forkortelser og identisk med det navn, valideringen gennemføres på - DNS Names: ingen
- Validity Period (in months):
12 - Content Type: PEM
Gyldighed: vælg 12 måneder. FairSSL udsteder Code Signing-certifikater med 1 års gyldighed. Har I købt dækning for flere år, er de efterfølgende år fornyelser af det eksisterende certifikat, ikke ét langt certifikat. Branchens loft er 460 dage, cirka 15 måneder (DigiCert udsteder 459), men det er en øvre grænse og ikke det, der bliver udstedt til jer.
Advanced Policy Configuration
Feltet står som Not configured. Klik på det og udfyld:
- Extended Key Usages (EKUs):
1.3.6.1.5.5.7.3.3(Code Signing). Fjern de EKU'er, der står der i forvejen - X.509 Key Usage Flags: lad stå uændret
- Reuse Key on Renewal: Yes
- Exportable Private Key: No
- Key Type: RSA-HSM
- Key Size: 4096
- Enable Certificate Transparency: No (Yes er tilladt, men ikke nødvendigt)
- Certificate Type: lad stå tomt. Feltet bruges kun ved en integreret CA
Mangler RSA-HSM som valgmulighed? Så er vault'en ikke Premium. Gå tilbage til trin 1. Opret ikke certifikatet med almindelig RSA, for så ligger den private nøgle ikke i en HSM, og certifikatet kan ikke udstedes.
Hent CSR'en
Tryk Create. Certifikatet vises på listen med status "In progress". Klik på certifikatet, vælg Certificate Operation og tryk Download CSR.
Den private nøgle bliver inde i HSM'en og forlader den aldrig. CSR-filen indeholder kun den offentlige nøgle og navnet, så den kan trygt sendes på e-mail.
Trin 4: Aflever CSR'en
Åbn CSR-filen i en teksteditor. Indholdet starter med -----BEGIN CERTIFICATE REQUEST----- og
slutter med -----END CERTIFICATE REQUEST-----. Hele blokken, inklusive de to linjer, er det, CA'en skal bruge.
DigiCert-ordre
Indsæt PEM-teksten i ordren, eller send filen til os på info@fairssl.dk, så indsætter vi den hos DigiCert. Ordren kan ikke oprettes uden CSR'en.
GlobalSign-ordre
Brug udstedelseslinket fra GlobalSign, som sendes til godkenderens e-mail, når valideringen er gennemført. Indsæt CSR'en der sammen med engangskoden. Certifikatet udstedes med det samme bagefter.
HSM-erklæringen
Før certifikatet udstedes, skal I bekræfte med underskrift, at certifikatet installeres i en fysisk sikring, her en Azure Key Vault Premium med RSA-HSM-nøgle, og at nøglen ikke kan eksporteres. Erklæringen skal udfyldes og underskrives af en, der teknisk kan stå inde for det, typisk den person, der opretter CSR'en og installerer certifikatet.
Når certifikatet er udstedt, får I typisk enten en samlet .p7b-fil eller flere separate filer: jeres Code Signing-certifikat, et intermediate-certifikat og et root-certifikat.
Trin 5: Flet det udstedte certifikat ind
Upload hele kæden. Det kan kun gøres én gang
Den hyppigste fejl i hele forløbet er at uploade sit eget certifikat alene, uden intermediate-certifikaterne. Det kan ikke rettes bagefter. Merge Signed Request kan kun køres én gang på en ventende anmodning.
Sker det, skal alle signeringer derefter laves med ekstra parametre, der peger på intermediate-certifikatet. Og sletter I certifikatet for at lægge det op igen med hele kæden, bliver den private nøgle slettet sammen med det. Så skal hele forløbet startes forfra: ny nøgle, ny CSR og ny udstedelse hos CA'en.
Kontrollér derfor filen, før du uploader. Den skal indeholde jeres eget certifikat og intermediate-certifikatet, jeres eget først.
Gå tilbage til Key Vault → Certificates → klik på certifikatet med status "In progress" → Certificate Operation → Merge Signed Request. Vælg certifikatfilen og upload.
Hvilken fil skal bruges
Brug en samlet .p7b-fil, eller en samlet .pem-tekstfil der indeholder alle certifikaterne, startende med jeres Code Signing-certifikat.
-----BEGIN CERTIFICATE----- (jeres Code Signing-certifikat) -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- (intermediate-certifikat) -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- (root-certifikat) -----END CERTIFICATE-----
Fra kommandolinjen kan filen sættes sammen med
cat codesign.pem intermediate.pem root.pem > fullchain.pem.
Azure CLI-alternativ
az keyvault certificate pending merge \ --vault-name jeres-codesign-vault \ --name codesign-2026 \ --file fullchain.pem
Når fletningen lykkes, skifter certifikatets status til Completed, og det er klar til brug.
Certifikatnavnet, f.eks. codesign-2026, er det, signeringsværktøjet skal pege på.
Almindelige fejl
RSA-HSM kan ikke vælges
Key Vault er ikke Premium. Opgradér vault'en med Azure CLI, eller opret en ny med Premium SKU.
"The user, group or application does not have certificates create permission"
Du mangler rettigheder på selve vault'en, se trin 2. Rettigheder på abonnementet tæller ikke. På en vault med RBAC er det rollen Key Vault Administrator, og rolletildelinger kan tage op til 10 minutter at slå igennem. På en vault med access policies er det access policy'en, der mangler.
CA'en afviser CSR'en
Oftest fordi Subject CN ikke er identisk med det juridiske navn, valideringen er gennemført på, eller fordi nøglen ikke er 4096 bit RSA. Opret et nyt certifikat med et andet navn og de rigtige felter, og indsend den nye CSR. Lad det forkerte certifikat ligge, se FAQ nedenfor om hvorfor det ikke skal slettes.
Merge Signed Request fejler
Enten passer certifikatet ikke til den ventende anmodning, eller kæden er ufuldstændig. Kontrollér, at certifikatet er udstedt på præcis den CSR, Key Vault genererede, at det ventende certifikat ikke er slettet eller genskabt undervejs, og at filen indeholder både jeres certifikat og intermediate-certifikatet, jeres certifikat først.
Certifikatet står stadig som "In progress"
Det udstedte certifikat er ikke flettet ind endnu. Det sker ikke automatisk ved en non-integrated CA. Gå til Certificate Operation og Merge Signed Request.
Når certifikatet er klar
Brug altid timestamping
Med et RFC 3161 timestamp bliver signaturen ved med at validere, efter certifikatet er udløbet.
Uden timestamp holder signaturen kun, så længe certifikatet er gyldigt. Med
signtool angives det med /tr.
http://timestamp.digicert.comhttp://timestamp.globalsign.com/tsa/r6advanced1
Kan der kun vælges én, anbefaler vi DigiCerts, da den historisk har været mest stabil. Se DigiCerts vejledning om timestamping-problemer ↗.
Signeringsværktøjer
- AzureSignTool ↗ til Microsoft-relateret kode. Signerer direkte mod Key Vault. Se linket til Walkthrough på GitHub-siden for, hvordan adgangen til certifikatet sættes op.
- Jsign ↗ hvis der skal signeres avancerede filtyper eller Java-baseret kode, eller det skal bruges som bindeled til jarsigner.
Konkrete kommandoer, service principal-opsætning og CI/CD-eksempler findes i den fulde opsætningsguide til Azure Key Vault.
Ekstra bagudkompatibilitet
Skal signeringen også validere på ældre systemer, kan CA-certifikatet "GlobalSign Code Signing Root R45 (R3 cross)" importeres. Det findes på GlobalSigns oversigt over intermediate-certifikater ↗.
CA'ernes egne vejledninger
- GlobalSign: Code Signing certificate setup in Azure Key Vault ↗
- GlobalSign: download and install HSM-based Code Signing certificate ↗
- GlobalSign: alle Code Signing-vejledninger, inkl. signtool og Java ↗
Bemærk, at felterne på denne side har forrang over CA'ernes generelle vejledninger, som ikke altid matcher det, Azure-portalen viser i dag.
Sig til hvis I har spørgsmål
Skriv til info@fairssl.dk eller ring på +45 77 34 56 78. Beskriv gerne med detaljer, hvilken kommando eller hvilket skærmbillede det drejer sig om, så kan vi svare præcist første gang.
Ofte stillede spørgsmål om CSR i Azure Key Vault
Find svar på de mest almindelige spørgsmål om SSL certifikater og FairSSL.
Skal I have et Code Signing-certifikat?
Et Code Signing certifikat kræver validering af virksomheden, så det udstedes ikke på få minutter. Vi hjælper med at vælge certifikat og nøgleopbevaring og holder jer orienteret under valideringen.