Firmare manifesti di applicazione e distribuzione
Se si vuole pubblicare un'applicazione tramite la distribuzione ClickOnce, i manifesti dell'applicazione e di distribuzione devono essere firmati con una coppia di chiavi pubblica/privata e tramite la tecnologia Authenticode. È possibile firmare i manifesti con un certificato dall'archivio certificati di Windows o un file di chiave.
Le informazioni contenute in questo articolo si applicano solo se si usa .NET Framework 4.8.1 o versioni precedenti. Se si usa .NET 5 o versione successiva, seguire la procedura descritta in Distribuire un'applicazione desktop Windows .NET con ClickOnce.
Per altre informazioni sulla distribuzione ClickOnce, vedere ClickOnce security and deployment (Sicurezza e distribuzione ClickOnce).
La firma dei manifesti ClickOnce è facoltativa per le applicazioni basate su file con estensione exe. Per altre informazioni, vedere la sezione "Creazione di manifesti non firmati" di questo documento.
Per altre informazioni sulla creazione di file di chiave, vedere Procedura: Creare una coppia di chiavi pubblica/privata.
Nota
Visual Studio supporta solo file di chiave Scambio informazioni personali con estensione pfx. È possibile tuttavia selezionare altri tipi di certificati dall'archivio certificati di Windows dell'utente corrente, facendo clic su Seleziona da archivio nella pagina Firma delle proprietà del progetto.
Firmare con un certificato
Per usare questo metodo, è necessario avere un certificato firmato da un'autorità di certificazione (CA). I certificati vengono rilasciati da provider di servizi di certificazione di terze parti o da organizzazioni autorizzate all'interno di un'organizzazione.
Passare alla finestra delle proprietà del progetto (fare clic con il pulsante destro del mouse sul nodo del progetto in Esplora soluzioni e scegliere Proprietà). Nella scheda Firma, selezionare la casella di controllo Firma i manifesti ClickOnce.
Fare clic sul pulsante Seleziona da archivio.
Viene visualizzata la finestra di dialogo Seleziona un certificato con il contenuto dell'archivio certificati di Windows.
Suggerimento
Se si fa clic su Fare clic qui per le proprietà del certificato, viene visualizzata la finestra di dialogo Dettagli del certificato. Questa finestra di dialogo contiene informazioni dettagliate sul certificato e opzioni aggiuntive. Fare clic su Certificati per visualizzare altre informazioni della Guida.
Selezionare il certificato che si vuole usare per firmare i manifesti.
Suggerimento
Se non sono presenti certificati nell'archivio, è comunque possibile firmare usando un certificato di test.
È possibile anche specificare l'indirizzo di un server di timestamp nella casella di testo URL del server di timestamp. Questo server indica quando è stato firmato il manifesto. In genere viene fornito dalla stessa terza parte che offre certificati firmati da una CA.
Firmare con un file di chiave esistente
Nella pagina Firma selezionare la casella di controllo Firma i manifesti ClickOnce.
Fare clic sul pulsante Seleziona da file.
Verrà visualizzata la finestra di dialogo Seleziona file.
Nella finestra di dialogo Seleziona file individuare la posizione del file di chiave (pfx) che si vuole usare e scegliere Apri.
Nota
Questa opzione supporta solo file con estensione pfx. Se il file di chiave o il certificato sono in un altro formato, archiviarlo nell'archivio certificati di Windows e selezionare il certificato come illustrato nella procedura precedente. Nei requisiti del certificato selezionato deve essere inclusa la firma del codice.
Viene visualizzata la finestra di dialogo Immettere la password per aprire il file. Se il file pfx è già archiviato nell'archivio dei certificati di Windows oppure non è protetto da password, non viene richiesto di immettere una password.
Immettere la password per accedere al file di chiave e quindi premere INVIO.
Selezionare Altri dettagli per visualizzare le proprietà del certificato. ClickOnce visualizza il valore del campo Oggetto come server di pubblicazione quando viene visualizzato il certificato quando un utente installa l'applicazione. Ecco un esempio di ciò che l'utente vede quando viene installata l'applicazione ClickOnce:
Nota
Il file pfx non può includere informazioni di concatenamento dei certificati. In caso affermativo, si verificherà l'errore di importazione seguente: Impossibile trovare il certificato e la chiave privata per la decrittografia. Per rimuovere le informazioni sul concatenamento dei certificati, è possibile usare Certmgr.msc e disabilitare l'opzione Includi tutti i certificati durante l'esportazione del file *.pfx.
Firmare con un certificato di prova
I certificati di test non sono firmati da un'autorità di certificazione (CA) e devono essere usati solo a scopo di test. Per informazioni dettagliate sui certificati di test, vedere How using certificates authorities helps users .For details on test certificates helps users.
Nella pagina Firma selezionare la casella di controllo Firma i manifesti ClickOnce.
Per creare un nuovo certificato per il test, fare clic sul pulsante Crea certificato di prova.
Nella finestra di dialogo Crea certificato di prova immettere una password per proteggere il certificato.
Nota
Assicurarsi di scegliere sha256RSA come algoritmo di firma, a meno che non si abbia come destinazione .NET 2.0.
Creazione di manifesti non firmati
La firma dei manifesti ClickOnce è facoltativa per .exe
le applicazioni basate su . Le procedure seguenti illustrano come creare manifesti ClickOnce non firmati.
Importante
I manifesti non firmati possono semplificare lo sviluppo e test dell'applicazione. I manifesti non firmati tuttavia comportano notevoli rischi di sicurezza in un ambiente di produzione. È consigliabile usare i manifesti non firmati solo se l'applicazione ClickOnce viene eseguita nei computer all'interno di una rete intranet che è completamente isolata da internet o da altre origini di codice dannoso.
Per impostazione predefinita, ClickOnce genera automaticamente manifesti firmati, a meno che uno o più file sono esplicitamente esclusi dall'hash creato. In altre parole, la pubblicazione dell'applicazione crea manifesti firmati se tutti i file sono inclusi nell'hash, anche quando la casella di controllo Firma i manifesti ClickOnce non è selezionata.
Per generare manifesti non firmati e includere tutti i file nell'hash creato
Per generare manifesti non firmati che includono tutti i file nell'hash, è necessario prima pubblicare l'applicazione insieme ai manifesti firmati. Pertanto, firmare prima i manifesti ClickOnce seguendo una delle procedure precedenti e quindi pubblicare l'applicazione.
Nella scheda Firma deselezionare la casella di controllo Firma i manifesti ClickOnce.
Nella scheda Pubblica reimpostare la versione di pubblicazione in modo che sia disponibile una sola versione dell'applicazione. Deselezionare la casella di controllo per Incrementa automaticamente la versione con ogni pubblicazione. Per impostazione predefinita, Visual Studio incrementa automaticamente il numero di revisione della versione di pubblicazione ogni volta che si pubblica un'applicazione. Per altre informazioni vedere How to: Set the ClickOnce Publish Version (Procedura: Reimpostare la versione di pubblicazione ClickOnce).
Selezionare Pubblica per pubblicare l'applicazione. Visual Studio indica che l'applicazione è stata firmata con una chiave diversa rispetto all'applicazione esistente nel server e chiede se si vuole sovrascriverla. Selezionare Sì.
Per generare manifesti non firmati ed escludere uno o più file dall'hash creato
Nella pagina Firma deselezionare la casella di controllo Firma i manifesti ClickOnce.
Nella scheda Pubblica scegliere il pulsante File applicazione per aprire la finestra di dialogo File applicazione e impostare Hash su Escludi per i file da escludere dall'hash generato.
Nota
L'esclusione di un file dall'hash configura ClickOnce per disattivare la firma automatica dei manifesti, pertanto non è necessario pubblicare prima l'applicazione con manifesti firmati, come illustrato nella procedura precedente.
Selezionare Pubblica per pubblicare l'applicazione.