Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln beskriver hur du skapar och litar på ett certifikat för signering av apppaket med hjälp av PowerShell-verktyg (för CMD-verktyg finns här). Vi rekommenderar att du använder Visual Studio för att paketera UWP-appar och paketera skrivbordsappar, men du kan fortfarande paketera en app manuellt om du inte använder Visual Studio för att utveckla din app.
Förutsättningar
En paketerad eller uppackad app
En app som innehåller en AppxManifest.xml fil. Du måste referera till manifestfilen när du skapar certifikatet som ska användas för att signera det slutliga apppaketet. Mer information om hur du paketera en app manuellt finns i Skapa ett apppaket med verktyget MakeAppx.exe.Cmdletar för Infrastruktur för offentliga nycklar (PKI)
Du behöver PKI-cmdletar för att skapa och exportera signeringscertifikatet. För mer information, se Cmdlets för infrastruktur med offentliga nycklar.
Skapa ett självsignerat certifikat
Ett självsignerat certifikat är användbart för att testa din app innan du är redo att publicera den i Store. Följ stegen som beskrivs i det här avsnittet för att skapa ett självsignerat certifikat.
Anmärkning
När du skapar och använder ett självsignerat certifikat kan endast användare som installerar och litar på ditt certifikat köra ditt program. Det här är enkelt att implementera för testning, men det kan hindra ytterligare användare från att installera programmet. När du är redo att publicera ditt program rekommenderar vi att du använder ett certifikat som utfärdats av en betrodd källa. Det här systemet med centraliserat förtroende hjälper till att säkerställa att programmets ekosystem har verifieringsnivåer för att skydda användare från skadliga aktörer.
Fastställa ämnet för din paketerade app
Om du vill använda ett certifikat för att signera ditt apppaket måste "Ämne" i certifikatet matcha avsnittet "Publisher" i appens manifest.
Avsnittet "Identitet" i appens AppxManifest.xml fil bör till exempel se ut ungefär så här:
<Identity Name="Contoso.AssetTracker"
Version="1.0.0.0"
Publisher="CN=Contoso Software, O=Contoso Corporation, C=US"/>
"Publisher", i det här fallet, är "CN=Contoso Software, O=Contoso Corporation, C=US" som måste användas för att skapa ditt certifikat.
Använda New-SelfSignedCertificate för att skapa ett certifikat
Använd PowerShell-cmdleten New-SelfSignedCertificate för att skapa ett självsignerat certifikat. New-SelfSignedCertificate har flera parametrar för anpassning, men i den här artikeln fokuserar vi på att skapa ett enkelt certifikat som fungerar med SignTool. Fler exempel och användningar av den här cmdleten finns i New-SelfSignedCertificate.
Baserat på den AppxManifest.xml filen från föregående exempel bör du använda följande syntax för att skapa ett certifikat. I en förhöjd PowerShell-prompt:
New-SelfSignedCertificate -Type Custom -KeyUsage DigitalSignature -CertStoreLocation "Cert:\CurrentUser\My" -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.3", "2.5.29.19={text}") -Subject "CN=Contoso Software, O=Contoso Corporation, C=US" -FriendlyName "Your friendly name goes here"
Observera följande information om några av parametrarna:
KeyUsage: Den här parametern definierar vad certifikatet kan användas för. För ett självsigneringscertifikat ska den här parametern anges till DigitalSignature.
TextExtension: Den här parametern innehåller inställningar för följande tillägg:
Utökad nyckelanvändning (EKU): Det här tillägget anger ytterligare syften för vilka den certifierade offentliga nyckeln kan användas. För ett självsigneringscertifikat ska den här parametern innehålla tilläggssträngen "2.5.29.37={text}1.3.6.1.5.5.7.3.3", vilket anger att certifikatet ska användas för kodsignering.
Grundläggande begränsningar: Denna extension anger om certifikatet är en certifikatmyndighet (CA). För ett självsigneringscertifikat bör den här parametern innehålla tilläggssträngen "2.5.29.19={text}", vilket anger att certifikatet är en slutentitet (inte en CA).
När du har kört det här kommandot skapas och läggs certifikatet till i användararkivet för personliga certifikat. Resultatet av kommandot skapar också certifikatets tumavtryck.
Du kan visa certifikatet i ett PowerShell-fönster med hjälp av följande kommandon:
Set-Location Cert:\CurrentUser\My
Get-ChildItem | Format-Table Subject, FriendlyName, Thumbprint
Detta kommer att visa alla certifikat i användarens personliga certifikatlager.
För att kunna installera en app som är signerad med det här certifikatet måste certifikatet importeras till certifikatarkivet Betrodda personer på den lokala datorn.
Exportera certifikatet till en PFX-fil
För att kunna importera det nyligen skapade certifikatet till certifikatarkivet Betrodda personer på den lokala datorn måste du först exportera det till en PFX-fil (Personal Information Exchange) med hjälp av cmdleten Export-PfxCertificate .
När du använder Export-PfxCertificate måste du antingen skapa och använda ett lösenord eller använda parametern "-ProtectTo" för att ange vilka användare eller grupper som kan komma åt filen utan lösenord. Observera att ett fel visas om du inte använder parametern "-Password" eller "-ProtectTo". "-Password" rekommenderas för allmän användning medan "-ProtectTo" är användbart när ditt användarkonto backas upp av en domänkontrollant.
Lösenordsanvändning
$password = ConvertTo-SecureString -String <Your Password> -Force -AsPlainText
Export-PfxCertificate -cert "Cert:\CurrentUser\My\<Certificate Thumbprint>" -FilePath <FilePath>.pfx -Password $password
ProtectTo-användning
Export-PfxCertificate -cert Cert:\CurrentUser\My\<Certificate Thumbprint> -FilePath <FilePath>.pfx -ProtectTo <Username or group name>
Importera certifikatet till Betrodda personers arkiv på lokal datorn.
Nu när du har exporterat certifikatet till en PFX-fil kan du importera det till arkivet Betrodda personer för lokal dator med hjälp av cmdleten Import-PfxCertificate från en powershell-administratörssession.
Import-PfxCertificate -CertStoreLocation "Cert:\LocalMachine\TrustedPeople" -Password $password -FilePath <FilePath>.pfx
Nu när certifikatet är betrott är du redo att signera apppaketet med SignTool. Nästa steg i den manuella paketeringsprocessen finns i Signera ett apppaket med SignTool.
Säkerhetsfrågor
Genom att lägga till ett certifikat i lokala datorcertifikatarkiv påverkar du certifikatförtroendet för alla användare på datorn. Vi rekommenderar att du tar bort dessa certifikat när de inte längre behövs för att förhindra att de används för att äventyra systemets förtroende.