2008-10-31 40 views
109

Tengo un archivo EXE que me gustaría firmar para que Windows no advierta al usuario final acerca de una aplicación de un "editor desconocido". No soy un desarrollador de Windows. La aplicación en cuestión es un salvapantallas generado a partir de una aplicación que genera aplicaciones de salvapantallas. Como tal, no tengo ninguna influencia sobre cómo se genera el archivo.Firmando un archivo EXE de Windows

Ya he descubierto que necesitaré un certificado code signing de CA como o instantssl.com. Lo que no entiendo es lo que debo hacer (si es posible) para firmar mi archivo EXE. ¿Qué es una explicación simple?

La respuesta de Mel Green me llevó más lejos, pero signtool quiere que especifique qué certificado usar en cualquier caso. ¿Puedo obtener un certificado de firma de código gratis de alguna manera para probar si esto funcionará para mí en absoluto?

También especifique qué tipo de certificado es el correcto. La mayoría de los sitios solo mencionan la "firma de código" y hablan sobre la firma de aplicaciones compiladas por el usuario. Este no es el caso para mí.

+0

Simplemente curioso - cuánto se tiene que pagar para comprar un certificado? – Ampere

Respuesta

82

Usted puede intentar usar Microsoft's Sign Tool

Usted descarga como parte del SDK de Windows para Windows Server 2008 y .NET 3.5. Una vez descargado se puede usar desde la línea de comandos, así:

signtool señal/a myfile.exe

Esta firma un único ejecutable. No estoy seguro de qué certificado utiliza.

O puede probar:

signtool signwizard

Se iniciará un asistente que le guiará a través de la firma de su aplicación.


Si desea obtener una bodega de certificado que se puede utilizar para probar el proceso de firmar el ejecutable que puede utilizar la herramienta .NET makecert.

Certificate Creation Tool (Makecert.exe)

Una vez que haya creado su propio certificado y lo ha usado para firmar su ejecutable, tendrá que añadir manualmente como una entidad de certificación raíz de confianza para su máquina con el fin de UAC para indicar al usuario ejecutarlo que proviene de una fuente confiable. Importante.Installing a certificate as ROOT CA will endanger your users privacy. Look what happened with DELL. Puede encontrar más información para llevar a cabo esto, tanto en código y a través de Windows en: pregunta

Esperemos que proporciona un poco más de información para cualquiera que intente hacer esto!

+0

Un flujo de trabajo en la pregunta separada: http://stackoverflow.com/questions/84847/how-do-i-create-a-self-signed-certificate-for-code-signing-on-windows –

+2

"Esta herramienta se instala automáticamente con Visual Studio. Para ejecutar la herramienta, use el símbolo del sistema del desarrollador (o el símbolo del sistema de Visual Studio en Windows 7) ". http://msdn.microsoft.com/en-us/library/8s9b9yaz(v=vs.110).aspx – Westy92

17

La revista ASP ASPects tiene una descripción detallada sobre cómo firmar el código (debe ser miembro para leer el artículo). Puede descargarlo a través de http://www.asp-shareware.org/

Aquí hay un enlace a una descripción de cómo puede make your own test certificate.

This también podría ser interesante.

+7

Addendum cuatro años después: Comodo se vio comprometido en algún momento a principios de 2012 (http://blogs.comodo.com/it-security/data-security/the-recent-ra-compromise/) y muchos agentes de usuario ahora rechazan certificados con una autoridad de raíz de Comodo –

+7

Comodo sigue siendo una apuesta arriesgada a mediados de 2013, y por 'agentes de usuario', eso significa que Microsoft/Windows seguramente son ellos quienes deciden si mostrar ese notorio mensaje de 'editor desconocido'. –

+0

Lo sentimos, eliminamos las recomendaciones explícitas del servicio, que son 1) obsoleta y 2) se han descartado ahora (porque 1.). – deceze

17

Puede obtener gratis certificado de firma de código from Certum si está desarrollando código abierto.

He estado utilizando su certificado durante más de un año, y se deshace del mensaje de editor desconocido de Windows.

En cuanto a la firma de código que utilizan signtool.exe partir de un guión de esta manera:

signtool.exe sign /t http://timestamp.verisign.com/scripts/timstamp.dll /f "MyCert.pfx" /p MyPassword /d SignedFile.exe SignedFile.exe 
+2

Ya no parece gratis, aún mucho más barato, € 14 – hultqvist

+1

Tienes razón, ya no se ve libre. recién me renové, y no pagué nada. Tal vez estoy protegido. Tal vez sus procesos internos están rotos. Su sitio web seguro es complicado. –

9

Otra opción, si tiene que firmar el ejecutable en una máquina Linux es utilizar signcode del Mono project tools. Es supported on Ubuntu.

+0

¡Eso es muy útil! El paquete también está disponible en Debian, bajo el nombre [mono-devel] (https://packages.debian.org/wheezy/mono-devel). – Marian

0

Referencia https://steward-fu.github.io/website/driver/wdm/self_sign.htm Nota: signtool.exe de Microsoft SDK

tiempo 1.En primer lugar (para hacer cert privada)

makecert -r -pe - ss SuNombre YourName.cer

Certmgr.exe -add YourName.cer -s -r LocalMachine raíz

2.After (para añadir su signo a su aplicación)

signo signtool/s SuNombre YourApp.exe

Cuestiones relacionadas