Dela via


Skapa ett självsignerat offentligt certifikat för att autentisera ditt program

Microsoft Entra-ID stöder två typer av autentisering för tjänstens huvudnamn: lösenordsbaserad autentisering (apphemlighet) och certifikatbaserad autentisering. Även om apphemligheter enkelt kan skapas i Azure-portalen eller med hjälp av ett Microsoft-API som Microsoft Graph, är de långlivade och inte lika säkra som certifikat. Därför rekommenderar vi att programmet använder ett certifikat i stället för en hemlighet.

För testning kan du använda ett självsignerat offentligt certifikat i stället för ett certifikatutfärdare (CA)-signerat certifikat. I den här instruktionen använder du PowerShell för att skapa och exportera ett självsignerat certifikat.

Varning

Självsignerade certifikat är digitala certifikat som inte är signerade av en betrodd certifikatutfärdare från tredje part. Självsignerade certifikat skapas, utfärdas och signeras av företaget eller utvecklaren som ansvarar för att webbplatsen eller programvaran signeras. Därför anses självsignerade certifikat vara osäkra för offentliga webbplatser och program.

När du skapar certifikatet med PowerShell kan du ange parametrar som kryptografiska algoritmer och hash-algoritmer, certifikatets giltighetsperiod och domännamn. Certifikatet kan sedan exporteras med eller utan dess privata nyckel beroende på programmets behov.

Programmet som initierar autentiseringssessionen kräver den privata nyckeln medan programmet som bekräftar autentiseringen kräver den offentliga nyckeln. Om du autentiserar från din PowerShell-skrivbordsapp till Microsoft Entra-ID exporterar du bara den offentliga nyckeln (.cer fil) och laddar upp den till Azure-portalen. PowerShell-appen använder den privata nyckeln från ditt lokala certifikatarkiv för att initiera autentisering och hämta åtkomsttoken för att anropa Microsoft-API:er som Microsoft Graph.

Ditt program kan också köras från en annan dator, till exempel Azure Automation. I det här scenariot exporterar du det offentliga och privata nyckelparet från ditt lokala certifikatarkiv, laddar upp den offentliga nyckeln till Azure-portalen och den privata nyckeln (en .pfx-fil ) till Azure Automation. Ditt program som körs i Azure Automation använder den privata nyckeln för att initiera autentisering och hämta åtkomsttoken för att anropa Microsoft-API:er som Microsoft Graph.

Den här artikeln använder PowerShell-cmdleten New-SelfSignedCertificate för att skapa det självsignerade certifikatet och cmdleten Export-Certificate för att exportera det till en plats som är lättillgänglig. Dessa cmdletar är inbyggda i moderna versioner av Windows (Windows 8.1 och senare och Windows Server 2012R2 och senare). Det självsignerade certifikatet har följande konfiguration:

  • En 2048-bitars nyckellängd. Även om längre värden stöds rekommenderas 2048-bitarsstorleken starkt för den bästa kombinationen av säkerhet och prestanda.
  • Använder den kryptografiska RSA-algoritmen. Microsoft Entra-ID stöder för närvarande endast RSA.
  • Certifikatet är signerat med SHA256-hashalgoritmen. Microsoft Entra ID stöder även certifikat som signerats med SHA384- och SHA512-hashalgoritmer.
  • Certifikatet är endast giltigt i ett år.
  • Certifikatet stöds för både klient- och serverautentisering.

Om du vill anpassa start- och förfallodatum och andra egenskaper för certifikatet läser du New-SelfSignedCertificate.

Skapa och exportera ditt offentliga certifikat

Använd certifikatet som du skapar med den här metoden för att autentisera från ett program som körs från datorn. Du kan till exempel autentisera från PowerShell.

I en PowerShell-prompt kör du följande kommando och lämnar PowerShell-konsolsessionen öppen. Ersätt {certificateName} med det namn som du vill ge certifikatet.

$certname = "{certificateName}"    ## Replace {certificateName}
$cert = New-SelfSignedCertificate -Subject "CN=$certname" -CertStoreLocation "Cert:\CurrentUser\My" -KeyExportPolicy Exportable -KeySpec Signature -KeyLength 2048 -KeyAlgorithm RSA -HashAlgorithm SHA256

Variabeln $cert i föregående kommando lagrar certifikatet i den aktuella sessionen och gör att du kan exportera det.

Kommandot nedan exporterar certifikatet i .cer format. Du kan också exportera den i andra format som stöds på Azure-portalen, inklusive .pem och .crt.


Export-Certificate -Cert $cert -FilePath "C:\Users\admin\Desktop\$certname.cer"   ## Specify your preferred location

Certifikatet är nu redo att laddas upp till Azure-portalen. När det har laddats upp hämtar du certifikatets tumavtryck för användning för att autentisera ditt program.

(Valfritt): Exportera ditt offentliga certifikat med dess privata nyckel

Om ditt program körs från en annan dator eller ett annat moln, till exempel Azure Automation, behöver du också en privat nyckel.

Om du följer de tidigare kommandona skapar du ett lösenord för din privata certifikatnyckel och sparar det i en variabel. Ersätt {myPassword} med det lösenord som du vill använda för att skydda din privata certifikatnyckel.


$mypwd = ConvertTo-SecureString -String "{myPassword}" -Force -AsPlainText  ## Replace {myPassword}

Använd lösenordet som du lagrade i variabeln $mypwd , skydda och exportera din privata nyckel med hjälp av kommandot .


Export-PfxCertificate -Cert $cert -FilePath "C:\Users\admin\Desktop\$certname.pfx" -Password $mypwd   ## Specify your preferred location

Certifikatet (.cer fil) är nu redo att laddas upp till Azure-portalen. Den privata nyckeln (.pfx-filen ) är krypterad och kan inte läsas av andra parter. När du har laddat upp hämtar du certifikatets tumavtryck, som du kan använda för att autentisera ditt program.

Valfri uppgift: Ta bort certifikatet från nyckelarkivet.

Du kan ta bort nyckelparet från ditt personliga arkiv genom att köra följande kommando för att hämta certifikatets tumavtryck.


Get-ChildItem -Path "Cert:\CurrentUser\My" | Where-Object {$_.Subject -Match "$certname"} | Select-Object Thumbprint, FriendlyName

Kopiera sedan tumavtrycket som visas och använd det för att ta bort certifikatet och dess privata nyckel.


Remove-Item -Path Cert:\CurrentUser\My\{pasteTheCertificateThumbprintHere} -DeleteKey

Känna till certifikatets förfallodatum

Det självsignerade certifikatet som du skapade enligt stegen ovan har en begränsad livslängd innan det upphör att gälla. I avsnittet Appregistreringar i Azure-portalen visar skärmen Certifikat och hemligheter certifikatets förfallodatum. Om du använder Azure Automation visar skärmen Certifikat på Automation-kontot certifikatets förfallodatum. Följ föregående steg för att skapa ett nytt självsignerat certifikat.

Nästa steg

Hantera certifikat för federerad enkel inloggning i Microsoft Entra-ID