Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento článek vysvětluje, jak vytvořit a důvěřovat certifikátu pro podepisování balíčků aplikací pomocí nástrojů PowerShellu (pro nástroje CMD najdete tady). Doporučuje se používat Visual Studio pro balení aplikací pro UPW a balení desktopových aplikací, ale aplikaci můžete zabalit ručně, pokud jste k vývoji aplikace nepoužili Visual Studio.
Požadavky
Zabalená nebo rozbalená aplikace
Aplikace obsahující AppxManifest.xml soubor. Při vytváření certifikátu, který se použije k podepsání konečného balíčku aplikace, budete muset odkazovat na soubor manifestu. Podrobnosti o ručním zabalení aplikace najdete v tématu Vytvoření balíčku aplikace pomocí nástroje MakeAppx.exe.Rutiny infrastruktury veřejných klíčů (PKI)
K vytvoření a exportu podpisového certifikátu potřebujete rutiny PKI. Další informace najdete v tématu Rutiny infrastruktury veřejných klíčů.
Vytvoření vlastnoručně podepsaného certifikátu
Certifikát podepsaný svým držitelem je užitečný pro testování aplikace předtím, než budete připraveni ji publikovat do Storu. Postupujte podle kroků uvedených v této části a vytvořte samopodepsaný certifikát.
Poznámka:
Při vytváření a používání certifikátu podepsaného svým držitelem můžou aplikaci spouštět jenom uživatelé, kteří instalují a důvěřují vašemu certifikátu. To je snadné implementovat pro testování, ale může zabránit dalším uživatelům v instalaci vaší aplikace. Až budete připraveni publikovat aplikaci, doporučujeme použít certifikát vystavený důvěryhodným zdrojem. Tento systém centralizované důvěryhodnosti pomáhá zajistit, aby ekosystém aplikací byl na úrovni ověřování, aby chránil uživatele před škodlivými aktéry.
Určení předmětu zabalené aplikace
Pokud chcete k podepsání balíčku aplikace použít certifikát, musí se text Předmět v certifikátu shodovat s oddílem Vydavatel v manifestu vaší aplikace.
Například část Identita v souboru AppxManifest.xml vaší aplikace by měla vypadat přibližně takto:
<Identity Name="Contoso.AssetTracker"
Version="1.0.0.0"
Publisher="CN=Contoso Software, O=Contoso Corporation, C=US"/>
Vydavatel v tomto případě je CN=Contoso Software, O=Contoso Corporation, C=US, který je potřeba použít k vytvoření certifikátu.
Vytvoření certifikátu pomocí new-SelfSignedCertificate
K vytvoření certifikátu podepsaného svým držitelem použijte rutinu New-SelfSignedCertificate PowerShellu. New-SelfSignedCertificate má několik parametrů pro přizpůsobení, ale pro účely tohoto článku se zaměříme na vytvoření jednoduchého certifikátu, který bude fungovat s SignTool. Další příklady a použití tohoto cmdletu najdete v tématu New-SelfSignedCertificate.
Na základě souboru AppxManifest.xml z předchozího příkladu byste k vytvoření certifikátu měli použít následující syntaxi. Na příkazovém řádku PowerShellu se zvýšenými oprávněními:
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"
Všimněte si následujících podrobností o některých parametrech:
KeyUsage: Tento parametr definuje, k čemu se certifikát může použít. U samopodepsaného certifikátu by měl být tento parametr nastaven na DigitalSignature.
TextExtension: Tento parametr zahrnuje nastavení pro následující rozšíření:
Rozšířené použití klíče (EKU): Toto rozšíření označuje další účely, pro které se dá certifikovaný veřejný klíč použít. U vlastnoručně podepsaného certifikátu by tento parametr měl obsahovat řetězec rozšíření 2.5.29.37={text}1.3.6.1.5.5.7.3.3, který označuje, že certifikát se má použít k podepsání kódu.
Základní omezení: Toto rozšíření označuje, jestli je certifikát certifikační autoritou (CA). Pro vlastní certifikát s vlastním podpisem by měl tento parametr obsahovat řetězec rozšíření 2.5.29.19={text}, který naznačuje, že certifikát je koncová entita (nikoliv CA).
Po spuštění tohoto příkazu se certifikát vytvoří a přidá do úložiště certifikátů Osobní uživatel. Výsledkem příkazu bude také kryptografický otisk certifikátu.
Certifikát můžete zobrazit v okně PowerShellu pomocí následujících příkazů:
Set-Location Cert:\CurrentUser\My
Get-ChildItem | Format-Table Subject, FriendlyName, Thumbprint
Zobrazí se všechny certifikáty v úložišti osobních certifikátů uživatele.
Aby bylo možné nainstalovat aplikaci podepsanou tímto certifikátem, musí být certifikát importován do úložiště certifikátů Důvěryhodné osoby místního počítače.
Export certifikátu do souboru PFX
Pokud chcete importovat nově vytvořený certifikát do úložiště certifikátů Důvěryhodné osoby místního počítače, musíte ho nejprve exportovat do souboru PFX (Personal Information Exchange) pomocí rutiny Export-PfxCertificate .
Při použití příkazu Export-PfxCertificate musíte buď vytvořit a použít heslo, nebo pomocí parametru -ProtectTo určit, kteří uživatelé nebo skupiny mají k souboru přístup bez hesla. Pokud nepoužíváte parametr -Password nebo-ProtectTo, zobrazí se chyba. "-Password" se doporučuje pro obecné použití, zatímco "-ProtectTo" je užitečné, když je váš uživatelský účet zálohovaný řadičem domény.
Použití hesla
$password = ConvertTo-SecureString -String <Your Password> -Force -AsPlainText
Export-PfxCertificate -cert "Cert:\CurrentUser\My\<Certificate Thumbprint>" -FilePath <FilePath>.pfx -Password $password
Použití Funkce ProtectTo
Export-PfxCertificate -cert Cert:\CurrentUser\My\<Certificate Thumbprint> -FilePath <FilePath>.pfx -ProtectTo <Username or group name>
Importujte certifikát do úložiště Důvěryhodné osoby na místním počítači
Teď, když jste certifikát exportovali do souboru PFX, můžete ho importovat do úložiště Důvěryhodných lidí místního počítače pomocí rutiny Import-PfxCertificate z relace PowerShellu pro správu.
Import-PfxCertificate -CertStoreLocation "Cert:\LocalMachine\TrustedPeople" -Password $password -FilePath <FilePath>.pfx
Teď, když je certifikát důvěryhodný, jste připraveni podepsat balíček aplikace pomocí SignTool. Další krok v procesu ručního balení najdete v tématu Podepsání balíčku aplikace pomocí Nástroje SignTool.
Bezpečnostní aspekty
Přidáním certifikátu do úložišť certifikátů místního počítače ovlivníte důvěryhodnost certifikátu všech uživatelů v počítači. Doporučujeme tyto certifikáty odebrat, pokud už nejsou nutné, abyste zabránili jejich použití k ohrožení důvěryhodnosti systému.