2010-02-17 16 views
16

Tengo una aplicación que necesito distribuir y quiero firmarla para poder evitar las advertencias de UAC en vista. Actualmente veo esto ...Cómo firmar un instalador para evitar la advertencia de UAC de Vista

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

Estoy utilizando Visual Studio para crear el instalador, pero la aplicación no estaba escrito en .NET. ¿Debo firmar tanto el .msi como el .exe contenidos en el .msi? ¿Qué tipo de llave necesito y dónde debo obtenerla? Actualmente estoy pensando en verisign aunque son caros. Necesito que esto sea confiable. Una vez que obtengo la clave, ¿cómo firmo? Si entiendo right al.exe y signtool.exe son para ensamblados .net ¿verdad? ¡Gracias!

Respuesta

13

Este diálogo particular es el más aterrador. Hay uno menos temible si la aplicación está firmada pero no refrendada. (Es decir, solo está firmado por usted). Para eludirlo por completo, de hecho necesita una contrafirma.

Windows contiene una lista de Autoridades de certificación de raíz de confianza (MMC.EXE> Agregar complemento> Certificados> Cuenta de equipo). Algunos de ellos están destinados a la "Firma de código", lo que significa que esas Autoridades de certificación pueden contrafirmar su firma. Verisign está en esa lista. Si está trabajando en una Internet corporativa, la firma de la compañía también puede o puede estar allí.

De todos modos, una vez que tiene un certificado refrendado, de hecho utiliza signtool para firmar tanto su aplicación como su instalador. Firmar su propia aplicación es una buena práctica y ayuda mucho en la gestión de la configuración. Signtool tiene una GUI, pero también se puede usar en modo CLI. Esto último es útil cuando desea que su proceso de compilación solicite la clave una vez y luego compila todo hasta el instalador. (¡No cifre la contraseña de su certificado corporativo en su proceso de compilación!).

Pero como dije anteriormente, también puede firmar con una firma no firmada. Esto es bastante útil para las pruebas, así como para familiarizarse con todo el proceso y realizar compilaciones automáticas.

+1

¿Tiene una referencia o sitio web que muestra cómo funciona esto? No puedo encontrar mucha documentación al respecto. Gracias – Mmarquee

+3

¿Has visto http://msdn.microsoft.com/en-us/library/ms537361(VS.85).aspx? La tecnología actual de firma de código de Microsoft se llama "Authenticode", que debería aparecer en algunos sitios más. – MSalters

Cuestiones relacionadas