Řešení potíží s chybami podpisu balíčku aplikace
Selhání nasazení aplikace může být způsobeno selháním ověření digitálního podpisu balíčku aplikace. Zjistěte, jak tyto chyby rozpoznat a co s nimi dělat.
Když nasadíte zabalenou aplikaci pro Windows, Windows se vždy pokusí ověřit digitální podpis v balíčku aplikace. Selhání při ověřování podpisu blokují nasazení balíčku. Ale proč se balíček neověřil, nemusí být zřejmé. Zejména pokud balíčky podepíšete privátními certifikáty pro místní testování, často musíte také spravovat důvěryhodnost těchto certifikátů. Nesprávná konfigurace důvěryhodnosti certifikátu může vést k selháním ověření podpisu.
Co potřebujete vědět
Technologie
Požadavky
- protokol událostí systému Windows k diagnostice selhání instalace.
- úlohy nástroje Certutil pro správu certifikátů pro manipulaci s úložištěm certifikátů během řešení potíží
Instrukce
Krok 1: Kontrola diagnostických informací v protokolech událostí
V závislosti na tom, jak jste se pokusili nasadit aplikaci, možná jste nedostali smysluplný kód chyby pro selhání nasazení. V takovém případě můžete kód chyby obvykle získat přímo z protokolů událostí.
Získání kódu chyby z protokolů událostí
Spusťte eventvwr.msc.
Přejděte na Prohlížeč událostí (místní) protokoly aplikací a služeb>>Microsoft>Windows.
První protokol, který zkontrolujete, je AppxPackagingOM>Microsoft-Windows-AppxPackaging/Operational.
Chyby související s nasazením se zaznamenávají v AppXDeployment-Server>Microsoft-Windows-AppXDeploymentServer/Operational.
V případě chyb nasazení vyhledejte nejnovější chybovou událost 404. Tato událost chyby poskytuje kód chyby a popis, proč nasazení selhalo. Pokud došlo k chybě 465 před událostí 404, došlo k potížím s otevřením balíčku.
Pokud k chybě 465 nedošlo, přečtěte si obecné Řešení potíží s balením, nasazením a dotazováním aplikací pro Windows. V opačném případě se v této tabulce podívejte na běžné kódy chyb, které se můžou zobrazit v řetězci chyby pro událost chyby 465:
Kód chyby | Chyba | Popis | Návrh |
---|---|---|---|
0x80073CF0 | Chyba: Nepodařilo se otevřít instalační balíček (ERROR_INSTALL_OPEN_PACKAGE_FAILED) | Balíček aplikace nelze otevřít. | Tato chyba obvykle značí problém s balíčkem. Balíček musíte znovu sestavit a podepsat. Další informace najdete v tématu Použití nástroje App Packager. |
0x80080205 | APPX_E_NEPLATNÁ_BLOKOVÁ_MAPA | Balíček aplikace byl manipulován nebo má neplatnou mapu bloků. | Balíček je poškozen. Balíček musíte znovu sestavit a podepsat. Další informace najdete v tématu Použití nástroje App Packager. |
0x800B0004 | TRUST_E_SUBJECT_NOT_TRUSTED (Subjekt není důvěryhodný) | Balíček aplikace byl zfalšován. | Obsah balíčku již neodpovídá jeho digitálnímu podpisu. Balíček musíte znovu podepsat. Další informace najdete v tématu Jak podepsat balíček aplikace pomocí nástroje SignTool. |
0x800B0100 | Důvěra_E_BezPodpisu | Balíček aplikace není podepsaný. | Je možné nasadit jenom podepsané balíčky aplikací pro Windows. Informace o podepisování balíčku aplikace najdete v tématu Jak podepsat balíček aplikace pomocí nástroje SignTool. |
0x800B0109 | CERT_E_UNTRUSTED_ROOT | Řetěz certifikátů použitý k podepsání balíčku aplikace končí kořenovým certifikátem, který není důvěryhodný. | Pokračujte krokem 2 a vyřešte potíže s důvěryhodností certifikátu. |
0x800B010A | CERT_E_CHAINING | Z certifikátu, který se použil k podepsání balíčku aplikace, se nedá vytvořit žádný řetěz certifikátů pro důvěryhodnou kořenovou autoritu. | Pokračujte krokem 2 a vyřešte potíže s důvěryhodností certifikátu. |
Krok 2: Určení řetězu certifikátů použitého k podepsání balíčku aplikace
Pokud chcete zjistit certifikáty, kterým musí místní počítač důvěřovat, můžete zkontrolovat řetěz certifikátů digitálního podpisu v balíčku aplikace.
Určení řetězu certifikátů
- V Průzkumníku souborů klikněte pravým tlačítkem na balíček aplikace a vyberte Vlastnosti.
- V dialogovém okně Vlastnosti vyberte kartu Digitální podpisy, která také zobrazuje, jestli je možné podpis ověřit.
- V seznamu Podpis vyberte podpis a potom klikněte na tlačítko Podrobnosti.
- V dialogovém okně Podrobnosti digitálního podpisu klikněte na tlačítko Zobrazit certifikát.
- V dialogovém okně Certifikát vyberte kartu Cesta k certifikaci.
Hlavním certifikátem v řetězu je kořenový certifikát a dolní certifikát je podpisový certifikát. Pokud je v řetězu jenom jeden certifikát, podpisový certifikát je také jeho vlastním kořenovým certifikátem. Můžete určit sériové číslo pro každý certifikát, který pak použijete s Certutil:
Určení sériového čísla pro každého certifikátu
- V podokně Cesta k certifikaci vyberte certifikát a klepněte na tlačítko Zobrazit certifikát.
- V dialogovém okně Certifikát vyberte kartu Podrobnosti, která zobrazuje sériové číslo a další užitečné vlastnosti certifikátu.
Krok 3: Určení certifikátů důvěryhodných místním počítačem
Aby bylo možné nasadit balíček aplikace, musí být důvěryhodný nejen v kontextu uživatele, ale také v kontextu místního počítače. V důsledku toho se digitální podpis může zobrazit jako platný, když se zobrazí na kartě Digitální podpisy z předchozího kroku, ale během nasazování balíčku aplikace stále selže ověření.
Určení, jestli je řetěz certifikátů použitý k podepsání balíčku aplikace výslovně důvěryhodný místním počítačem
Spusťte tento příkaz:
CertUtil.exe -store Root rootCertSerialNumber
Spusťte tento příkaz:
CertUtil.exe -store TrustedPeople signingCertSerialNumber
Pokud nezadáte sériové číslo certifikátu, nástroj Certutil zobrazí seznam všech certifikátů, které místní počítač považuje za důvěryhodné pro dané úložiště.
Balíček se nemusí nainstalovat kvůli chybám řetězení certifikátů, i když podpisový certifikát není podepsaný svým držitelem a kořenový certifikát je v kořenovém úložišti místního počítače. V takovém případě může dojít k problému s důvěryhodností pro zprostředkující certifikační autority. Další informace o tomto problému najdete v tématu Práce s certifikáty.
Poznámky
Pokud jste zjistili, že se balíček nepodařilo nasadit, protože podpisový certifikát není důvěryhodný, neinstalujte balíček, pokud nevíte, odkud pochází, a důvěřujete mu.
Pokud chcete ručně schválit aplikaci pro instalaci (například pro instalaci svého vlastního balíčku aplikace podepsaného pro testování), můžete ručně přidat certifikát do důvěryhodnosti certifikátů místního počítače z balíčku aplikace.
Ruční přidání certifikátu do důvěryhodnosti certifikátu místního počítače
- V Průzkumníku souborů klikněte pravým tlačítkem na balíček aplikace a v místní nabídce vyberte Vlastnosti.
- V dialogovém okně Vlastnosti vyberte záložku Digitální podpisy.
- V seznamu Podpis vyberte podpis a potom klikněte na tlačítko Podrobnosti.
- V dialogovém okně Podrobnosti digitálního podpisu klikněte na tlačítko Zobrazit certifikát.
- V dialogovém okně Certifikát klikněte na tlačítko Nainstalovat certifikát....
- V Průvodci importem certifikátu vyberte místní počítač a klepněte na tlačítko Další. Abyste mohli pokračovat, budete muset udělit oprávnění správce.
- Vyberte Umístit všechny certifikáty do následujícího úložiště a přejděte do úložiště Důvěryhodné osoby.
- Klikněte na Dalšía poté na Dokončit pro dokončení průvodce.
Po tomto ručním přidání uvidíte, že certifikát je nyní důvěryhodný v dialogovém okně Certifikát.
Certifikát můžete odebrat, až ho už nepotřebujete.
Odebrání certifikátu
Spusťte Cmd.exe jako správce.
Na příkazovém řádku správce spusťte tento příkaz:
Certutil -store TrustedPeople
Vyhledejte sériové číslo nainstalovaného certifikátu. Toto číslo je certID.
Spusťte tento příkaz:
Certutil -delStore TrustedPeople certID
Doporučujeme, abyste se vyhnuli ručnímu přidávání kořenových certifikátů do složky důvěryhodných kořenových certifikačních autorit na místním počítači . Pokud máte několik aplikací, jejichž certifikáty jsou propojeny ke stejnému kořenovému certifikátu, například obchodní aplikace, což může být efektivnější než instalace jednotlivých certifikátů do úložiště Důvěryhodných osob. Úložiště Důvěryhodné osoby obsahuje certifikáty, které jsou ve výchozím nastavení považovány za důvěryhodné, a proto nejsou ověřeny vyššími autoritami nebo seznamy důvěryhodnosti certifikátů nebo řetězy. Pro další úvahy o přidávání certifikátů do úložiště certifikátů důvěryhodných kořenových certifikačních autorit viz Code-Signing osvědčené postupy.
Důležité informace o zabezpečení
Přidáním certifikátu do úložišť certifikátů místního počítačeovlivníte důvěryhodnost certifikátu všech uživatelů v počítači. Doporučujeme nainstalovat všechny podpisové certifikáty kódu, které chcete použít pro testování balíčků aplikací, do úložiště certifikátů Důvěryhodné osoby. Tyto certifikáty okamžitě odeberte, pokud už nejsou nezbytné, aby se zabránilo jejich použití k ohrožení důvěryhodnosti systému. Pokud vytváříte vlastní testovací certifikáty pro podpisové balíčky aplikací, doporučujeme také omezit oprávnění přidružená k testovacímu certifikátu. Informace o vytváření testovacích certifikátů pro podpisové balíčky aplikací najdete v tématu Vytvoření podpisového certifikátu balíčku aplikace.
Související témata