Come risolvere gli errori di firma del pacchetto dell'app

Un errore di distribuzione dell'app può essere causato da un errore durante la convalida della firma digitale del pacchetto dell'app. Informazioni su come riconoscere questi errori e su cosa fare.

Quando si distribuisce un'app di Windows in pacchetto, Windows tenta sempre di convalidare la firma digitale nel pacchetto dell'app. Errori durante la distribuzione del blocco di convalida della firma del pacchetto. Tuttavia, il motivo per cui il pacchetto non è stato convalidato potrebbe non essere ovvio. In particolare, se si firmano i pacchetti con certificati privati per i test locali, spesso è necessario gestire anche l'attendibilità per tali certificati. Una configurazione di attendibilità del certificato non corretta può causare errori di convalida della firma.

Informazioni importanti

Tecnologie

Prerequisiti

Istruzioni

Passaggio 1: Esaminare i registri eventi per informazioni di diagnostica

A seconda del modo in cui si è tentato di distribuire l'app, potrebbe non essere stato ricevuto un codice di errore significativo per l'errore di distribuzione. In questo caso, in genere è possibile ottenere il codice di errore direttamente dai registri eventi.

Per ottenere il codice di errore dai registri eventi

  1. Eseguire eventvwr.msc.

  2. Passare a Visualizzatore eventi (locale)>Registri applicazioni e servizi>di Microsoft>Windows.

  3. Il primo log da controllare è AppxPackagingOM>Microsoft-Windows-AppxPackaging/Operational.

  4. Gli errori correlati alla distribuzione vengono registrati in AppXDeployment-Server>Microsoft-Windows-AppXDeploymentServer/Operational.

    Per gli errori di distribuzione, cercare l'evento di errore 404 più recente. Questo evento di errore fornisce il codice di errore e una descrizione del motivo per cui la distribuzione non è riuscita. Se un evento di errore 465 ha preceduto l'evento 404, si è verificato un problema durante l'apertura del pacchetto.

Se l'errore 465 non si è verificato, vedere Risoluzione dei problemi generali di creazione di pacchetti, distribuzione e query delle app di Windows. In caso contrario, fare riferimento a questa tabella per i codici di errore comuni che possono essere visualizzati nella stringa di errore per l'evento di errore 465:

Codice di errore Errore Descrizione Suggerimento
0x80073CF0 ERROR_INSTALL_OPEN_PACKAGE_FAILED Impossibile aprire il pacchetto dell'app. Questo errore indica in genere un problema con il pacchetto. È necessario compilare e firmare di nuovo il pacchetto. Per altre info, vedi Uso di App Packager.
0x80080205 APPX_E_INVALID_BLOCKMAP Il pacchetto dell'app è stato manomesso o ha una mappa a blocchi non valida. Il pacchetto è danneggiato. È necessario compilare e firmare di nuovo il pacchetto. Per altre info, vedi Uso di App Packager.
0x800B0004 TRUST_E_SUBJECT_NOT_TRUSTED Il pacchetto dell'app è stato manomesso. Il contenuto del pacchetto non corrisponde più alla firma digitale. È necessario firmare di nuovo il pacchetto. Per altre info, vedi Come firmare un pacchetto dell'app con SignTool.
0x800B0100 TRUST_E_NOSIGNATURE Il pacchetto dell'app non è firmato. È possibile distribuire solo i pacchetti di app di Windows firmati. Per informazioni sulla firma di un pacchetto dell'app, vedi Come firmare un pacchetto dell'app con SignTool.
0x800B0109 CERT_E_UNTRUSTED_ROOT La catena di certificati usata per firmare il pacchetto dell'app termina con un certificato radice non attendibile. Continuare con il passaggio 2 per risolvere i problemi relativi all'attendibilità del certificato.
0x800B010A CERT_E_CHAINING Nessuna catena di certificati può essere compilata in un'autorità radice attendibile dal certificato usato per firmare il pacchetto dell'app. Continuare con il passaggio 2 per risolvere i problemi relativi all'attendibilità del certificato.

 

Passaggio 2: Determinare la catena di certificati usata per firmare il pacchetto dell'app

Per determinare i certificati che il computer locale deve considerare attendibile, è possibile esaminare la catena di certificati per la firma digitale nel pacchetto dell'app.

Per determinare la catena di certificati

  1. In Esplora file fare clic con il pulsante destro del mouse sul pacchetto dell'app e scegliere Proprietà.
  2. Nella finestra di dialogo Proprietà selezionare la scheda Firme digitali, che visualizza anche se la firma può essere convalidata.
  3. Nell'elenco Firma selezionare la firma e quindi fare clic sul pulsante Dettagli .
  4. Nella finestra di dialogo Dettagli firma digitale fare clic sul pulsante Visualizza certificato.
  5. Nella finestra di dialogo Certificato selezionare la scheda Percorso certificazione.

Il certificato superiore nella catena è il certificato radice e il certificato inferiore è il certificato di firma. Se nella catena si trova un solo certificato, il certificato di firma è anche il proprio certificato radice. È possibile determinare il numero di serie per ogni certificato usato con Certutil:

Per determinare il numero di serie per ogni certificato

  1. Nel riquadro Percorso di certificazione selezionare il certificato e quindi fare clic su Visualizza certificato.
  2. Nella finestra di dialogo Certificato selezionare la scheda Dettagli , che visualizza il numero di serie e altre proprietà utili del certificato.

Passaggio 3: Determinare i certificati considerati attendibili dal computer locale

Per poter distribuire un pacchetto dell'app, non deve essere considerato attendibile solo nel contesto dell'utente, ma anche nel contesto del computer locale. Di conseguenza, la firma digitale può essere visualizzata come valida quando viene visualizzata nella scheda Firme digitali del passaggio precedente ma non riesce ancora la convalida durante la distribuzione del pacchetto dell'app.

Per determinare se la catena di certificati usata per firmare il pacchetto dell'app è specificatamente attendibile dal computer locale

  1. Eseguire questo comando:

    CertUtil.exe -store Root rootCertSerialNumber
    
  2. Eseguire questo comando:

    CertUtil.exe -store TrustedPeople signingCertSerialNumber
    

Se non si specifica il numero di serie del certificato, Certutil elenca tutti i certificati considerati attendibili dal computer locale per tale archivio.

Il pacchetto potrebbe non essere installato a causa di errori di concatenamento dei certificati, anche se il certificato di firma non è autofirmato e il certificato radice si trova nell'archivio radice del computer locale. In questo caso, potrebbe verificarsi un problema relativo all'attendibilità per le autorità di certificazione intermedie. Per altre informazioni su questo problema, vedi Uso dei certificati.

Osservazioni:

Se si è determinato che non è stato possibile distribuire il pacchetto perché il certificato di firma non è attendibile, non installare il pacchetto a meno che non si conosca dove ha avuto origine e si consideri attendibile.

Se vuoi considerare attendibile manualmente l'app per l'installazione (ad esempio, per installare il tuo pacchetto di app con firma di test), puoi aggiungere manualmente il certificato all'attendibilità del certificato del computer locale dal pacchetto dell'app.

Per aggiungere manualmente il certificato all'attendibilità del certificato del computer locale

  1. In Esplora file fare clic con il pulsante destro del mouse sul pacchetto dell'app e nel menu di scelta rapida a comparsa selezionare Proprietà.
  2. Nella finestra di dialogo Proprietà selezionare la scheda Firme digitali.
  3. Nell'elenco Firma selezionare la firma e quindi fare clic sul pulsante Dettagli .
  4. Nella finestra di dialogo Dettagli firma digitale fare clic sul pulsante Visualizza certificato.
  5. Nella finestra di dialogo Certificato fare clic sul pulsante Installa certificato.
  6. Nell'Importazione guidata certificati selezionare Computer locale e quindi fare clic su Avanti. Sarà necessario concedere privilegi di amministratore per continuare.
  7. Selezionare Inserisci tutti i certificati nell'archivio seguente e passare all'archivio Persone attendibile.
  8. Fare clic su Avanti, quindi su Fine per completare la procedura guidata.

Dopo l'aggiunta manuale, è possibile notare che il certificato è ora considerato attendibile nella finestra di dialogo Certificato .

È possibile rimuovere il certificato dopo che non è più necessario.

Per rimuovere il certificato

  1. Eseguire Cmd.exe come amministratore.

  2. Nel prompt dei comandi dell'amministratore eseguire questo comando:

    Certutil -store TrustedPeople
    
  3. Cercare il numero di serie del certificato installato. Questo numero è il certID.

  4. Eseguire questo comando:

    Certutil -delStore TrustedPeople certID
    

È consigliabile evitare di aggiungere manualmente i certificati radice all'archivio certificati autorità di certificazione radice attendibili del computer locale. La presenza di più applicazioni firmate con certificati concatenati allo stesso certificato radice, ad esempio le applicazioni line-of-business, può essere più efficiente rispetto all'installazione di singoli certificati nell'archivio Persone attendibile. L'archivio Persone attendibile contiene certificati considerati attendibili per impostazione predefinita e pertanto non vengono verificati da autorità superiori o elenchi di attendibilità certificati o catene. Per considerazioni sull'aggiunta di certificati all'archivio certificati Autorità di certificazione radice attendibili, vedere Procedure consigliate per la firma del codice.

Security Considerations

Aggiungendo un certificato agli archivi certificati del computer locale, si influisce sull'attendibilità del certificato di tutti gli utenti nel computer. È consigliabile installare tutti i certificati di firma del codice desiderati per testare i pacchetti dell'app nell'archivio certificati trusted Persone. Rimuovere tempestivamente tali certificati quando non sono più necessari, per evitare che vengano usati per compromettere l'attendibilità del sistema. Se si creano certificati di test personalizzati per la firma dei pacchetti dell'app, è consigliabile limitare anche i privilegi associati al certificato di test. Per informazioni sulla creazione di certificati di test per la firma dei pacchetti dell'app, vedere Come creare un certificato di firma del pacchetto dell'app.

Esempi

Esempio di creazione del pacchetto dell'app

Concetti

Risoluzione dei problemi di creazione pacchetti, distribuzione e query delle app Windows

Attività Certutil per la gestione dei certificati