2010-02-17 8 views
16

Ho un'app che ho bisogno di distribuire e voglio firmare così posso evitare gli avvisi UAC in vista. Attualmente vedo questo ...Come firmare un programma di installazione per prevenire l'avviso UAC di Vista

UAC http://img694.imageshack.us/img694/7289/uac.jpg

Sto usando Visual Studio per creare il programma di installazione, ma l'applicazione non è stato scritto in .NET. Devo firmare entrambi i file .msi e .exe contenuti nel file .msi? Che tipo di chiave ho bisogno e dove dovrei ottenerla? Attualmente sto pensando a verisign anche se sono costosi, ho bisogno che questo sia affidabile. Una volta ottenuta la chiave, come posso firmare? Se devo capire che right al.exe e signtool.exe sono per .net assembly, giusto? Grazie!

risposta

13

Questo particolare dialogo è il più spaventoso. Ce n'è uno meno spaventoso se l'applicazione è firmata ma non controfirmata. (Cioè è solo firmato da te). Per bypassarlo completamente, hai davvero bisogno di una controfirma.

Windows contiene un elenco di Autorità di certificazione radice affidabili (MMC.EXE> Aggiungi snap-in> Certificati> Account computer). Alcuni di questi sono destinati alla "firma del codice", il che significa che le autorità di certificazione possono contro-firmare la tua firma. Verisign è in quella lista. Se stai lavorando su una rete aziendale, la firma delle aziende potrebbe/potrebbe esserci anche lì.

In ogni caso, una volta ottenuto un certificato controfirmato, si utilizza effettivamente signtool per firmare sia l'app che il relativo programma di installazione. Firmare la propria app è una buona pratica e aiuta molto in Configuration Management. Signtool ha una GUI, ma può anche essere utilizzato in modalità CLI. Quest'ultimo è utile quando vuoi che il tuo processo di compilazione richieda la chiave una volta e poi costruisca tutto fino al programma di installazione. (Non inserire la password per il certificato aziendale nel processo di compilazione!).

Tuttavia, come detto in precedenza, è possibile firmare anche con una firma non controfirmata. Questo è abbastanza utile per i test, così come ottenere un blocco dell'intero processo e fare build automatizzati.

+1

Avete un riferimento o un sito Web che mostra come funziona? Non riesco a trovare molta documentazione a riguardo. Grazie – Mmarquee

+3

Hai visto http://msdn.microsoft.com/en-us/library/ms537361(VS.85).aspx? La tecnologia di firma del codice Microsoft è chiamata "Authenticode", che dovrebbe generare altri siti. – MSalters

Problemi correlati