How to do Code Signing in Windows using GlobalSign’s Code Signing Certificate and Microsoft Signtool?
Aug 15, 2024
How to do Code Signing in Windows using GlobalSign’s Code Signing Certificate and Microsoft Signtool?
Introduction
This article will be the default article after the implementation of
the new Minimum Requirements for Code Signing on February 1, 2017.
Prerequisites
Important SignTool Options
- /ac - Specify an Additional Certificate.
- /a - Automatically selects the best certificate to sign the file from your Windows Certificate Store.
- /n "Certificate Common Name" Specifies the certificate to sign the file from your Windows Certificate Store using the certificate common name.
- /fd SHA256 - Specify the file digest algorithm used in creating file signatures.
- /t - Specify a Microsoft Authenticode compatible time stamp server.
- /tr - Specify an RFC 3161 compliant trusted time stamp server.*Recommended*
- /td SHA256 - Must be called after "/tr", this command specifies the TimeStamp digest Algorithm. *Recommended*
Note: Timestamping your Code is extremely important and is highly recommended for every piece of code that you sign.
This timestamp will allow the file that you sign to remain valid long after the certificate itself has expired.
TimeStamp URLs:
SHA-2 based: http://timestamp.globalsign.com/tsa/r6advanced1
Procedure
- You can either sign files out of a working directory, or you can place them in your Windows SDK\bin folder.
- Open the Command Prompt: Windows 7: Start > Run > cmd, or for Windows 8 - 10, press the Windows Key, then type cmd and press enter.
- Navigate to the directory with signtool.exe.
- Use the following command to sign your file:
signtool sign /a /tr http://timestamp.globalsign.com/tsa/r6advanced1 /td SHA256 /fd SHA256 c:/path/to/your/file.exe
- Enter your Token Password. If the signing is successful you will see a prompt informing you so.
- To verify the successful signature use the following commands:
Authenticode: signtool verify /v /pa
Kernel Driver Signing: signtool verify /v /kp
You may also verify the signature within the properties of the file, under the Digital Signatures tab.