usar gratis generar crear con como certificado security code-signing

security - gratis - ¿Cómo creo un certificado autofirmado para la firma de código en Windows?



crear certificado ssl windows (4)

Respuesta actualizada

Si está utilizando las siguientes versiones de Windows o posteriores: Windows Server 2012, Windows Server 2012 R2 o Windows 8.1, entonces MakeCert ya no está disponible y Microsoft recomienda usar el Cmdlet de PowerShell New-SelfSignedCertificate .

Si está utilizando una versión anterior, como Windows 7, tendrá que seguir con MakeCert u otra solución. Algunas personas suggest el Módulo Powershell de Infraestructura de Clave Pública (PSPKI) .

Respuesta original

Si bien puede crear un certificado de firma de código autofirmado (SPC - Certificado de editor de software ) de una sola vez, prefiero hacer lo siguiente:

Creación de una autoridad de certificación (CA) autofirmada

makecert -r -pe -n "CN=My CA" -ss CA -sr CurrentUser ^ -a sha256 -cy authority -sky signature -sv MyCA.pvk MyCA.cer

(^ = permitir línea de comando por lotes para ajustar la línea)

Esto crea un certificado autofirmado (-r), con una clave privada exportable (-pe). Se llama "Mi CA" y debe colocarse en la tienda CA para el usuario actual. Estamos usando el SHA-256 . La clave está destinada a la firma (-sky).

La clave privada debe almacenarse en el archivo MyCA.pvk y el certificado en el archivo MyCA.cer.

Importación del certificado de CA

Como no tiene sentido tener un certificado de CA si no confía en él, deberá importarlo al almacén de certificados de Windows. Puede usar el complemento de MMC Certificados, pero desde la línea de comando:

certutil -user -addstore Root MyCA.cer

Crear un certificado de firma de código (SPC)

makecert -pe -n "CN=My SPC" -a sha256 -cy end ^ -sky signature ^ -ic MyCA.cer -iv MyCA.pvk ^ -sv MySPC.pvk MySPC.cer

Es prácticamente el mismo que el anterior, pero proporcionamos una clave de emisor y un certificado (los modificadores -ic y -iv).

También queremos convertir el certificado y la clave en un archivo PFX:

pvk2pfx -pvk MySPC.pvk -spc MySPC.cer -pfx MySPC.pfx

Si desea proteger el archivo PFX, agregue el modificador -po; de lo contrario, PVK2PFX crea un archivo PFX sin frase de contraseña.

Usando el certificado para firmar el código

signtool sign /v /f MySPC.pfx ^ /t http://timestamp.url MyExecutable.exe

( Vea por qué las marcas de tiempo pueden importar )

Si importa el archivo PFX en el almacén de certificados (puede usar PVKIMPRT o el complemento MMC), puede firmar el código de la siguiente manera:

signtool sign /v /n "Me" /s SPC ^ /t http://timestamp.url MyExecutable.exe

Algunas posibles URL de marca de tiempo para signtool /t son:

  • http://timestamp.verisign.com/scripts/timstamp.dll
  • http://timestamp.globalsign.com/scripts/timstamp.dll
  • http://timestamp.comodoca.com/authenticode

Documentación completa de Microsoft

Descargas

Para aquellos que no son desarrolladores de .NET, necesitará una copia del Windows SDK y .NET framework. Un enlace actual está disponible aquí: SDK & .NET (que instala makecert en C:/Program Files/Microsoft SDKs/Windows/v7.1 ). Su experiencia puede ser diferente.

MakeCert está disponible desde el Símbolo del sistema de Visual Studio. Visual Studio 2015 lo tiene y se puede iniciar desde el menú Inicio en Windows 7 en "Indicador de comandos del desarrollador para VS 2015" o "Símbolo del sistema de herramientas nativas VS2015 x64" (probablemente todos ellos en la misma carpeta).

¿Cómo creo un certificado autofirmado para la firma de código usando herramientas del SDK de Windows?



Es bastante fácil usar el comando New-SelfSignedCertificate en Powershell. Abre powershell y ejecuta estos 3 comandos.

1) Crear certificado :
$ cert = New-SelfSignedCertificate -DnsName www.yourwebsite.com -Type CodeSigning -CertStoreLocation Cert: / CurrentUser / My

2) establecer la contraseña para ello :
$ CertPassword = ConvertTo-SecureString -String "my_passowrd" -Force -AsPlainText

3) Exportarlo :
Export-PfxCertificate -Cert "cert: / CurrentUser / My / $ ($ cert.Thumbprint)" -FilePath "d: / testcert.pfx" -Password $ CertPassword

Su certificado testcert.pfx se ubicará @ D:/


La respuesta de Roger fue muy útil.

Sin embargo, tuve algunos problemas para usarlo y seguí recibiendo el mensaje de error "Windows no puede verificar el editor de este software de controlador". La clave fue instalar el certificado raíz de prueba con

certutil -addstore Root Demo_CA.cer

que la respuesta de Roger no cubrió del todo.

Aquí hay un archivo por lotes que funcionó para mí (con mi archivo .inf, no incluido). Muestra cómo hacerlo todo de principio a fin, sin herramientas GUI en absoluto (excepto por algunas indicaciones de contraseña).

REM Demo of signing a printer driver with a self-signed test certificate. REM Run as administrator (else devcon won''t be able to try installing the driver) REM Use a single ''x'' as the password for all certificates for simplicity. PATH %PATH%;"c:/Program Files/Microsoft SDKs/Windows/v7.1/Bin";"c:/Program Files/Microsoft SDKs/Windows/v7.0/Bin";c:/WinDDK/7600.16385.1/bin/selfsign;c:/WinDDK/7600.16385.1/Tools/devcon/amd64 makecert -r -pe -n "CN=Demo_CA" -ss CA -sr CurrentUser ^ -a sha256 -cy authority -sky signature ^ -sv Demo_CA.pvk Demo_CA.cer makecert -pe -n "CN=Demo_SPC" -a sha256 -cy end ^ -sky signature ^ -ic Demo_CA.cer -iv Demo_CA.pvk ^ -sv Demo_SPC.pvk Demo_SPC.cer pvk2pfx -pvk Demo_SPC.pvk -spc Demo_SPC.cer ^ -pfx Demo_SPC.pfx ^ -po x inf2cat /drv:driver /os:XP_X86,Vista_X64,Vista_X86,7_X64,7_X86 /v signtool sign /d "description" /du "www.yoyodyne.com" ^ /f Demo_SPC.pfx ^ /p x ^ /v driver/demoprinter.cat certutil -addstore Root Demo_CA.cer rem Needs administrator. If this command works, the driver is properly signed. devcon install driver/demoprinter.inf LPTENUM/Yoyodyne_IndustriesDemoPrinter_F84F rem Now uninstall the test driver and certificate. devcon remove driver/demoprinter.inf LPTENUM/Yoyodyne_IndustriesDemoPrinter_F84F certutil -delstore Root Demo_CA