SSL-certifikater kan højst være gyldige i 199 dage. Fra 15. marts 2027 bliver grænsen 99 dage. Læs mere →

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

  1. Opret nøglen og CSR'en i Key Vault. Se trin 1 til 3 herunder
  2. Aflever CSR'en, se trin 4. Ordren kan ikke oprettes hos DigiCert uden en CSR
  3. Organisationsvalideringen går i gang, og HSM-erklæringen underskrives
  4. Når valideringen er godkendt, udstedes certifikatet og sendes til jer
  5. Flet certifikatet ind i Key Vault. Se trin 5

GlobalSign: validering først, CSR bagefter

  1. Ordren oprettes uden CSR
  2. I modtager dokumenter til underskrift og dato, og HSM-erklæringen underskrives
  3. Godkenderen bliver ringet op på virksomhedens hovednummer eller kontaktet på e-mailadressen fra CVR og skal bekræfte, at virksomheden har bestilt certifikatet
  4. Når valideringen er godkendt, sender GlobalSign et udstedelseslink til godkenderens e-mail, sammen med en engangskode
  5. 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
  6. 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
Advanced Policy Configuration i Azure Key Vault med EKU 1.3.6.1.5.5.7.3.3, Reuse Key on Renewal Yes, Exportable Private Key No, Key Type RSA-HSM og Key Size 4096
Advanced Policy Configuration med de indstillinger, der skal bruges.

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 OperationMerge 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.com
  • http://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

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.

Det afhænger af CA'en. Hos DigiCert skal CSR'en ligge klar, før ordren kan oprettes, fordi CSR'en indsendes som en del af bestillingen. Hos GlobalSign gennemføres organisationsvalideringen først, og CSR'en indsendes bagefter via det udstedelseslink, GlobalSign sender, når valideringen er godkendt. Er du i tvivl om, hvilken CA din ordre ligger hos, så spørg os.
Så er din Key Vault ikke Premium. Kun Premium-prisniveauet understøtter HSM-beskyttede nøgler. Prisniveauet kan ikke ændres i portalen, men en Standard-vault kan opgraderes til Premium via Azure CLI. Alternativt opretter du en ny Key Vault med Premium SKU.
Vælg 12 måneder. FairSSL udsteder Code Signing-certifikater med 1 års gyldighed. Køber I 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, men det er en øvre grænse og ikke det, I får udstedt. Feltet i Azure styrer kun Key Vaults egen politik, ikke den gyldighed CA'en udsteder.
Kun CN med virksomhedens fulde juridiske navn, skrevet præcis som det står i CVR, uden forkortelser. Navnet skal være identisk med det, organisationsvalideringen gennemføres på. Er der forskel, bliver CSR'en afvist. O, OU, L og C er ikke nødvendige, CA'en udfylder selv resten ud fra valideringen.
Fordi hele pointen med et HSM-beskyttet Code Signing-certifikat er, at den private nøgle aldrig kan forlade den fysiske sikring. Det er også det, I bekræfter med underskrift i HSM-erklæringen til CA'en. Med Yes ville nøglen kunne eksporteres, og certifikatet ville ikke opfylde kravene.
Nej, en ventende anmodning kan ikke redigeres. Opret i stedet et nyt certifikat med et andet navn, fx codesign-2026b, og brug den nye CSR. Undlad at slette det forkerte certifikat: Key Vault har soft-delete, så navnet er optaget i retention-perioden, og med purge protection slået til kan det ikke frigives før perioden udløber. Det forkerte certifikat gør ingen skade, hvor det ligger. Har du allerede afleveret en CSR til CA'en, skal du give os besked, så vi kan få ordren genudstedt på den nye CSR.
Ja, hvis Reuse Key on Renewal er sat til Yes. Så kan du senere vælge New Version på certifikatet og få en ny CSR på det samme HSM-nøglepar. Certifikatnavnet er uændret, så din signeringsopsætning skal ikke rettes.

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.