Skapa CSR för kodsignering i Azure Key Vault Premium
Sidan är skriven för den som ska skapa CSR:en och beskriver exakt vad som görs i Azure Key Vault, från att nyckeln skapas tills det utfärdade certifikatet är ihopslaget och klart att använda. Den gäller både DigiCert och GlobalSign, OV och EV.
Ska du också konfigurera signering med AzureSignTool, service principals och CI/CD beskrivs det i den fullständiga installationsguiden för Azure Key Vault.
Läs detta först: det måste vara en Premium Key Vault
Det vanligaste felet är att en Key Vault skapas på prisnivån Standard. En Standard Key Vault kan inte skapa HSM-skyddade nycklar. Valet RSA-HSM finns då inte, och det är lätt att välja vanlig RSA i stället. Då ligger den privata nyckeln i programvara, certifikatet kan inte utfärdas och hela konfigurationen måste göras om.
Prisnivån kan inte ändras i Azure-portalen. Ett Standard-valv kan bara uppgraderas till Premium via kommandoraden, och en nyckel som redan skapats som programvarunyckel blir inte HSM-skyddad av en uppgradering. Kontrollera prisnivån innan du skapar certifikatet. Se steg 1.
Kort sammanfattning
- ✓ Key Vault måste vara Premium. En Standard Key Vault kan inte skapa RSA-HSM-nycklar
- ✓ Du behöver Key Vault Administrator på själva valvet, inte bara på prenumerationen
- ✓ Nyckeln ska vara 4096 bitars RSA-HSM och får inte kunna exporteras
- ✓ En tekniskt ansvarig ska underteckna ett HSM-intyg till CA:n
- ✓ Tidpunkten då CSR:en lämnas in skiljer sig mellan DigiCert och GlobalSign
Ordningen skiljer sig mellan DigiCert och GlobalSign
Konfigurationen i Azure är densamma oavsett CA, men tidpunkten då CSR:en ska användas skiljer sig. Läs avsnittet som gäller er order.
DigiCert: CSR:en måste vara klar först
- Skapa nyckeln och CSR:en i Key Vault. Se steg 1 till 3 nedan
- Lämna in CSR:en, se steg 4. Ordern kan inte skapas hos DigiCert utan en CSR
- Organisationsvalideringen startar och HSM-intyget undertecknas
- När valideringen är godkänd utfärdas certifikatet och skickas till er
- Slå ihop certifikatet i Key Vault. Se steg 5
GlobalSign: validering först, CSR efteråt
- Ordern skapas utan CSR
- Ni får dokument att underteckna och datera, och HSM-intyget undertecknas
- Godkännaren blir uppringd på företagets huvudnummer eller kontaktad via företagets registrerade e-postadress och ska bekräfta att företaget har beställt certifikatet
- När valideringen är godkänd skickar GlobalSign en utfärdandelänk till godkännarens e-post, tillsammans med en engångskod
- Först då ska CSR:en användas. Skapa nyckeln och CSR:en i Key Vault, se steg 1 till 3, och lämna in CSR:en via länken, se steg 4
- Certifikatet utfärdas direkt. Slå ihop det i Key Vault, se steg 5
Ett direktnummer kan bara användas om det lämnas ut av den som svarar på huvudnumret. Finns det bestämda tider då godkännaren går att nå, eller behöver man knappa in något särskilt i växeln, säg till oss så vidarebefordrar vi det.
Ta inte bort det väntande certifikatet i Key Vault medan ni väntar. Det utfärdade certifikatet kan bara slås ihop med exakt den väntande begäran som CSR:en kom från. Skapar du om certifikatet får du en ny nyckel, och det utfärdade certifikatet går inte att använda.
Steg 1: Kontrollera att Key Vault är Premium
Öppna Key Vault-resursen i Azure-portalen och se under Overview att prisnivån är Premium. En Standard Key Vault kan bara skapa programvaruskyddade nycklar, och valet RSA-HSM saknas i steg 3.
Ska ett nytt valv skapas kan det göras från portalen eller med Azure CLI:
az keyvault create \ --name ert-codesign-vault \ --resource-group er-resource-group \ --location westeurope \ --sku premium \ --enable-purge-protection true
Har ni redan en Standard Key Vault kan prisnivån uppgraderas till Premium från kommandoraden. Det går inte att göra i Azure-portalen:
az keyvault update \ --name ert-codesign-vault \ --resource-group er-resource-group \ --set properties.sku.name=premium
Nycklar som redan skapats som programvarunycklar blir inte HSM-skyddade av en uppgradering.
Steg 2: Se till att du har rätt behörighet
Azure Key Vault har en separat behörighetsmodell för certifikat och nycklar. Att vara Owner eller Contributor på prenumerationen ger inte åtkomst att skapa certifikat inne i valvet. Behörigheten behöver ofta läggas till separat, utöver de administratörsbehörigheter man redan har.
Med RBAC som behörighetsmodell
Tilldela rollen Key Vault Administrator på Key Vault-resursen: Key Vault → Access control (IAM) → Add role assignment → Key Vault Administrator → välj din användare. Rolltilldelningar kan ta upp till 10 minuter innan de börjar gälla.
Med access policies som behörighetsmodell
Lägg till en access policy för din användare med certifikatbehörigheterna Get, List, Create, Update och Import, samt nyckelbehörigheterna Get, List och Create.
Steg 3: Skapa certifikatet och hämta CSR:en
Gå till Key Vault → Certificates → Generate/Import.
Create a certificate
- Method of Certificate Creation: Generate
- Certificate Name: ert interna namn, t.ex.
codesign-2026 - Type of Certificate Authority (CA): Certificate issued by a non-integrated CA
- Subject:
CN=Ert fullständiga registrerade företagsnamn, utan förkortningar och identiskt med det namn valideringen genomförs på - DNS Names: inga
- Validity Period (in months):
12 - Content Type: PEM
Giltighet: välj 12 månader. Kodsigneringscertifikat från FairSSL utfärdas med 1 års giltighet. Har ni köpt täckning för flera år är de följande åren förnyelser av det befintliga certifikatet, inte ett enda långt certifikat. Branschens tak är 460 dagar, cirka 15 månader (DigiCert utfärdar 459), men det är en övre gräns och inte det som utfärdas till er.
Advanced Policy Configuration
Fältet står som Not configured. Klicka på det och fyll i:
- Extended Key Usages (EKUs):
1.3.6.1.5.5.7.3.3(Code Signing). Ta bort de EKU:er som redan står där - X.509 Key Usage Flags: lämna oförändrade
- Reuse Key on Renewal: Yes
- Exportable Private Key: No
- Key Type: RSA-HSM
- Key Size: 4096
- Enable Certificate Transparency: No (Yes är tillåtet men inte nödvändigt)
- Certificate Type: lämna tomt. Fältet används bara vid en integrerad CA
Saknas RSA-HSM som alternativ? Då är valvet inte Premium. Gå tillbaka till steg 1. Skapa inte certifikatet med vanlig RSA, för då ligger den privata nyckeln inte i en HSM och certifikatet kan inte utfärdas.
Hämta CSR:en
Klicka på Create. Certifikatet visas i listan med status "In progress". Klicka på certifikatet, välj Certificate Operation och klicka på Download CSR.
Den privata nyckeln lämnar aldrig HSM. CSR-filen innehåller bara den offentliga nyckeln och namnet, så filen kan skickas via e-post utan risk.
Steg 4: Lämna in CSR:en
Öppna CSR-filen i en textredigerare. Innehållet börjar med -----BEGIN CERTIFICATE REQUEST----- och
slutar med -----END CERTIFICATE REQUEST-----. Hela blocket, inklusive de två raderna, är det CA:n behöver.
DigiCert-order
Klistra in PEM-texten i ordern, eller skicka filen till oss på info@fairssl.se, så lägger vi in den hos DigiCert. Ordern kan inte skapas utan CSR:en.
GlobalSign-order
Använd utfärdandelänken från GlobalSign, som skickas till godkännarens e-post när valideringen är genomförd. Klistra in CSR:en där tillsammans med engångskoden. Certifikatet utfärdas direkt efteråt.
HSM-intyget
Innan certifikatet utfärdas ska ni bekräfta med underskrift att certifikatet installeras med hårdvaruskydd, här en Azure Key Vault Premium med RSA-HSM-nyckel, och att nyckeln inte kan exporteras. Intyget ska fyllas i och undertecknas av någon som tekniskt kan gå i god för det, normalt personen som skapar CSR:en och installerar certifikatet.
När certifikatet är utfärdat får ni normalt antingen en samlad .p7b-fil eller flera separata filer: ert kodsigneringscertifikat, ett mellanliggande certifikat och ett rotcertifikat.
Steg 5: Slå ihop det utfärdade certifikatet
Ladda upp hela certifikatkedjan. Det går bara en gång
Det vanligaste felet i hela processen är att ladda upp det egna certifikatet ensamt, utan de mellanliggande certifikaten. Det går inte att rätta efteråt. Merge Signed Request kan bara köras en gång på en väntande begäran.
Händer det måste alla signeringar därefter göras med extra parametrar som pekar på det mellanliggande certifikatet. Tar ni bort certifikatet för att ladda upp det igen med hela kedjan raderas även den privata nyckeln. Då måste hela processen göras om: ny nyckel, ny CSR och nytt utfärdande hos CA:n.
Kontrollera därför filen innan du laddar upp den. Den ska innehålla ert eget certifikat och det mellanliggande certifikatet, ert eget först.
Gå tillbaka till Key Vault → Certificates → klicka på certifikatet med status "In progress" → Certificate Operation → Merge Signed Request. Välj certifikatfilen och ladda upp.
Vilken fil ska användas
Använd en samlad .p7b-fil, eller en samlad .pem-textfil som innehåller alla certifikaten, med ert kodsigneringscertifikat först.
-----BEGIN CERTIFICATE----- (ert kodsigneringscertifikat) -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- (mellanliggande certifikat) -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- (rotcertifikat) -----END CERTIFICATE-----
Från kommandoraden kan filen sättas ihop med
cat codesign.pem intermediate.pem root.pem > fullchain.pem.
Med Azure CLI
az keyvault certificate pending merge \ --vault-name ert-codesign-vault \ --name codesign-2026 \ --file fullchain.pem
När certifikatet har slagits ihop ändras dess status till Completed och det är klart att använda.
Certifikatnamnet, t.ex. codesign-2026, är det signeringsverktyget ska peka på.
Vanliga fel
RSA-HSM går inte att välja
Key Vault är inte Premium. Uppgradera valvet med Azure CLI, eller skapa ett nytt med Premium SKU.
"The user, group or application does not have certificates create permission"
Du saknar behörighet på själva valvet, se steg 2. Behörigheter på prenumerationen räknas inte. På ett valv med RBAC är det rollen Key Vault Administrator, och rolltilldelningar kan ta upp till 10 minuter innan de slår igenom. På ett valv med access policies är det access policyn som saknas.
CA:n avvisar CSR:en
Oftast för att Subject CN inte är identiskt med det juridiska namn valideringen genomförts på, eller för att nyckeln inte är 4096 bitars RSA. Skapa ett nytt certifikat med ett annat namn och rätt fält, och lämna in den nya CSR:en. Låt det felaktiga certifikatet ligga kvar. Varför det inte ska tas bort står bland frågorna nedan.
Merge Signed Request misslyckas
Antingen matchar certifikatet inte den väntande begäran, eller så är kedjan ofullständig. Kontrollera att certifikatet är utfärdat på exakt den CSR som Key Vault genererade, att det väntande certifikatet inte tagits bort eller skapats om under tiden, och att filen innehåller både ert certifikat och det mellanliggande certifikatet, ert certifikat först.
Certifikatet står fortfarande som "In progress"
Det utfärdade certifikatet är inte ihopslaget än. Det sker inte automatiskt med en non-integrated CA. Gå till Certificate Operation och Merge Signed Request.
När certifikatet är klart
Använd alltid tidsstämpling
Med en RFC 3161-tidsstämpel förblir signaturen giltig även efter att certifikatet har gått ut.
Utan tidsstämpel håller signaturen bara så länge certifikatet är giltigt. I
signtool anges tidsstämpelservern med /tr.
http://timestamp.digicert.comhttp://timestamp.globalsign.com/tsa/r6advanced1
Kan ni bara välja en rekommenderar vi DigiCerts, eftersom den historiskt har varit mest stabil. Se DigiCerts guide om problem med tidsstämpling ↗.
Signeringsverktyg
- AzureSignTool ↗ för Microsoft-relaterad kod. Signerar direkt mot Key Vault. Hur åtkomsten till certifikatet konfigureras står under Walkthrough på GitHub-sidan.
- Jsign ↗ när ovanliga filtyper eller Java-baserad kod ska signeras, eller som mellanled till jarsigner.
Konkreta kommandon, konfiguration av service principals och CI/CD-exempel finns i den fullständiga installationsguiden för Azure Key Vault.
Extra bakåtkompatibilitet
Ska signeringen även validera på äldre system kan CA-certifikatet "GlobalSign Code Signing Root R45 (R3 cross)" importeras. Det finns på GlobalSigns översikt över mellanliggande certifikat ↗.
CA:ernas egna guider
- GlobalSign: Code Signing certificate setup in Azure Key Vault ↗
- GlobalSign: download and install HSM-based Code Signing certificate ↗
- GlobalSign: alla guider för kodsignering, inkl. signtool och Java ↗
Fältvärdena på den här sidan går före CA:ernas allmänna guider, som inte alltid stämmer med det Azure-portalen visar.
Hör av er om ni har frågor
Skriv till info@fairssl.se eller ring +46 10 101 03 34. Beskriv gärna i detalj vilket kommando eller vilken skärmbild det gäller, så kan vi svara exakt redan första gången.
Vanliga frågor om CSR i Azure Key Vault
Hitta svar på de vanligaste frågorna om SSL-certifikat och FairSSL.
Behöver ni ett kodsigneringscertifikat?
Skapa ett gratis konto och beställ ditt första certifikat. Ett DV-certifikat utfärdas på under 2 minuter.