Tengo un archivo EXE que me gustaría firmar para que Windows no avise al usuario final sobre una aplicación de un "editor desconocido". No soy un desarrollador de Windows. La aplicación en cuestión es un protector de pantalla generado a partir de una aplicación que genera aplicaciones de protector de pantalla. Como tal, no tengo influencia sobre cómo se genera el archivo.
Ya descubrí que necesitaré un certificado de firma de código de una CA como Verisign o instantssl.com. Lo que no entiendo es lo que tengo que 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 gratuito de alguna manera para probar si esto me funcionará?
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 las aplicaciones de firma que realmente compila el usuario. Este no es el caso para mí.
fuente
Respuestas:
Puedes intentar usar la herramienta de firma de Microsoft
Lo descarga como parte del SDK de Windows para Windows Server 2008 y .NET 3.5. Una vez descargado, puede usarlo desde la línea de comandos de la siguiente manera:
Esto firma un único ejecutable, utilizando el "mejor certificado" disponible. (Si no tiene certificado, mostrará un mensaje de error de SignTool).
O puedes probar:
Esto lanzará un asistente que lo guiará a través de la firma de su aplicación. (Esta opción no está disponible después de Windows SDK 7.0).
Si desea obtener un certificado que puede usar para probar su proceso de firma del ejecutable, puede usar la herramienta .NET Makecert .
Herramienta de creación de certificados (Makecert.exe)
Una vez que haya creado su propio certificado y lo haya usado para firmar su ejecutable, deberá agregarlo manualmente como CA raíz confiable para su máquina para que UAC le diga al usuario que lo ejecuta que es de una fuente confiable. Importante . Instalar un certificado como ROOT CA pondrá en peligro la privacidad de sus usuarios. Mira lo que pasó con DELL. Puede encontrar más información para lograr esto tanto en código como a través de Windows en:
Pregunta de desbordamiento de pila Instalar certificados en el almacén de certificados de usuario local de Windows en C #
Instalación de un certificado autofirmado como CA raíz de confianza en Windows Vista
¡Espero que eso proporcione más información para cualquiera que intente hacer esto!
fuente
Tuve el mismo escenario en mi trabajo y aquí están nuestros hallazgos
Lo primero que debe hacer es obtener el certificado e instalarlo en su computadora, puede comprar uno de una Autoridad de Certificación o generar uno usando makecert .
Aquí están los pros y los contras de las 2 opciones
Comprar un certificado
Generar un certificado usando Makecert
Firma el archivo ejecutable
Hay dos formas de firmar el archivo que desea:
Usando un certificado instalado en la computadora
signtool.exe sign / a / s MY / sha1 sha1_thumbprint_value / t http://timestamp.verisign.com/scripts/timstamp.dll / v "C: \ filename.dll"
Usando un archivo de certificado
signtool sign / tr http://timestamp.digicert.com / td sha256 / fd sha256 / f "c: \ path \ to \ mycert.pfx" / p pfxpassword "c: \ path \ to \ file.exe"
Pon a prueba tu firma
Método 1: usar signtool
Vaya a: Inicio> Ejecutar tipo CMD> haga clic en Aceptar En el símbolo del sistema, ingrese el directorio donde existe signtool Ejecute lo siguiente:
signtool.exe verificar / pa / v "C: \ filename.dll"
Método 2: usar Windows
Haga clic con el botón derecho en el archivo firmado Seleccionar propiedades Seleccione la pestaña Firmas digitales. La firma se mostrará en la sección Lista de firmas.
Espero que esto te pueda ayudar
Fuentes:
https://docs.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/platform-apis/ms537361(v=vs.85)
https://www.digicert.com/code-signing/signcode-signtool-command-line.htm
https://knowledge.symantec.com/support/code-signing-support/index?page=content&id=SO15544&actp=search&viewlocale=en_US
https://msdn.microsoft.com/en-us/library/windows/desktop/aa386968(v=vs.85).aspx
fuente
Puede obtener un certificado de firma de código barato y
gratuitode Certum si está realizando un desarrollo de código abierto.He estado usando su certificado durante más de un año, y elimina el mensaje desconocido del editor de Windows.
En cuanto al código de firma, uso signtool.exe de un script como este:
fuente
La revista ASPects de ASP 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 hacer su propio certificado de prueba .
Esto también puede ser interesante.
fuente
Otra opción, si necesita firmar el ejecutable en un cuadro de Linux, es usar el código de signo de las herramientas del proyecto Mono . Es compatible con Ubuntu .
fuente
Referencia https://steward-fu.github.io/website/driver/wdm/self_sign.htm Nota: signtool.exe del Microsoft SDK
1.Primera vez (para hacer un certificado privado)
Makecert -r -pe -ss YourName YourName.cer
certmgr.exe -add YourName.cer -s -r localMachine root
2.Después (para agregar su signo a su aplicación)
signtool sign / s YourName YourApp.exe
fuente
Y otra opción, si está desarrollando en Windows 10 pero no tiene instalado el signtool.exe de Microsoft, puede usar Bash en Ubuntu en Windows para firmar su aplicación. Aquí hay un descuidado:
https://blog.synapp.nz/2017/06/16/code-signing-a-windows-application-on-linux-on-windows/
fuente
osslsigncode
también está disponible encygwin
, por lo que si ya está usando eso (como yo), puede iniciar sesión en su entorno actual, en lugar de tener que cambiar a WSL.Utilice el siguiente enlace para firmar el archivo .exe (instalación / instalador) (firmar el archivo exe / instalación sin usar signtool de instalación de Microsoft)
https://ebourg.github.io/jsign/#files
comando de ejemplo java -jar jsign-2.0.jar --keystore keystore.jks "--alias alias --storepass contraseña MyInstaller.exe
Trabajó para mi :)
fuente
Esta no es una respuesta directa a la pregunta, pero está estrechamente relacionada (y espero que sea útil) ya que tarde o temprano un programador habrá metido la mano en la billetera:
Entonces, los precios de la firma EV:
1 año $ 350 + (tarifa oculta de $ 50)
2 años $ 600
3 años $ 750
[www.ksoftware.net] [3]
eToken enviado como memoria USB. No se necesita lector.
Realmente compras en Comodo (Sectigo)
1 año 350 euros
3 años 799 euros
sklep.certum.pl
1 año $ 499 USD
3 años $ 897 USD
sectigo.com
1 año $ 410 en total
2 años $ 760 en total
3 años $ 950 en total
www.globalsign.com
1 año: $ 600 (era $ 104)
3 años:?
www.digicert.com
1 año: $ 700
3 años: ridículo caro
[ https://trustcenter.websecurity.symantec.com/]
Más precios aquí:
https://cheapsslsecurity.com/sslproducts/codesigningcertificate.html
También vea el enlace agregado por Erick Castrillo: cheapsslsecurity.com/sslproducts/codesigningcertificate.html
fuente