feat: firma de código para distribución interna#4
Open
Owito wants to merge 1 commit into
Open
Conversation
Firma Authenticode de la app y el instalador con certificado auto-firmado,
para equipos controlados (no elimina SmartScreen en distribucion publica,
que exige un certificado EV comprado; el pipeline sirve igual con uno).
- tools/New-CodeSigningCert.ps1: crea el cert y exporta signing/*.{cer,pfx}
- tools/sign.ps1: firma Margoth.exe y Margoth_Setup.exe con sello RFC3161,
usando el cert del almacen (sin signtool)
- tools/Trust-MargothCert.ps1: confia el cert publico en cada equipo destino
- .gitignore: excluye signing/ y todo material de clave (*.pfx/*.cer/...)
- README: flujo de firma (build->firmar->empaquetar->firmar->confiar) y nota
para el usuario final sobre el aviso de editor
Verificado: ambos binarios quedan firmados por 'CN=Carlos G' con sello de
tiempo de DigiCert; el estado pasa a Valido en equipos que confian el cert.
There was a problem hiding this comment.
Pull request overview
Este PR incorpora un flujo de firma de código Authenticode para distribución interna en Windows, incluyendo scripts para crear un certificado de firma auto-firmado, firmar los binarios generados y confiar el certificado en equipos destino, además de documentar el proceso en el README.
Changes:
- Añade scripts PowerShell para: generar un certificado de firma (auto-firmado), firmar
Margoth.exe/Margoth_Setup.exe, e instalar confianza del certificado en el equipo. - Documenta el flujo completo de firma (interno) y ajusta instrucciones de instalación para reflejar el escenario con certificado confiado.
- Ignora en git el material de firma (
signing/y extensiones de certificados/claves) para evitar commits accidentales.
Reviewed changes
Copilot reviewed 4 out of 5 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| tools/New-CodeSigningCert.ps1 | Script para crear y exportar certificado auto-firmado de firma de código. |
| tools/sign.ps1 | Script para firmar ejecutable e instalador con certificado del almacén y sello de tiempo. |
| tools/Trust-MargothCert.ps1 | Script para importar el .cer en Root y TrustedPublisher (CurrentUser/LocalMachine). |
| README.md | Documenta firma de código para equipos internos y matiza el aviso de Windows en instalación. |
| .gitignore | Excluye material de firma (certificados/claves) del repositorio. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Firma la app y el instalador para equipos que controlas (distribución interna).
Qué hace
New-CodeSigningCert.ps1) →signing/Margoth-CodeSigning.{cer,pfx}(ignorados por git).sign.ps1) deMargoth.exeyMargoth_Setup.execon sello de tiempo RFC3161, usando el cert del almacén (sin signtool).Trust-MargothCert.ps1) del cert público en cada equipo destino → la firma pasa a válida y desaparece el "Editor desconocido".Limitación (importante)
Un cert auto-firmado no quita SmartScreen para usuarios externos; eso exige un certificado EV comprado. El mismo pipeline funciona con un EV: solo cambia el certificado.
Verificado
Ambos binarios quedan firmados por
CN=Carlos G+ sello de tiempo de DigiCert. El estado esValiden equipos donde se confía el certificado (pasoTrust-MargothCert.ps1, con el diálogo de seguridad estándar de Windows para la raíz).Nota:
signing/(certificados y clave privada) queda fuera del repo por diseño.