Skip to content

Windows SignTool Integration

Use Microsoft SignTool to sign Windows executables (.exe, .dll, .sys) through the QCecuring platform.

QCecuring integrates with SignTool using the Windows Key Storage Provider (KSP) and the local Signing Agent.

All private keys remain protected inside the QCecuring platform.
The KSP forwards signing operations securely through the agent to the backend.


SignTool → QCecuring KSP → Signing Agent → QCecuring Platform → HSM / KMS

Before proceeding:

  • QCecuring Platform is running
  • Signing Agent is installed and running
  • QCecuring Windows KSP is installed
  • A code signing certificate exists in the platform
  • You have the associated Key ID

Step 1 — Download Certificate from QCecuring UI

Section titled “Step 1 — Download Certificate from QCecuring UI”
  1. Navigate to Certificates in the QCecuring UI.
  2. Select the certificate associated with your signing key.
  3. Download the certificate file (.cer).
  4. Note the Key ID associated with that certificate.

Download Certificate

Copy the certificate file to your working directory.


Step 2 — Import & Link Certificate to QCecuring KSP

Section titled “Step 2 — Import & Link Certificate to QCecuring KSP”

Run:

Terminal window
.\import-link-cert.ps1 -CertPath .\codesign.cer -KeyId <YourKeyId>

Import & Link Certificate

You should see:

Certificate successfully linked!
READY TO SIGN

Run:

Terminal window
certutil -user -store My

Confirm:

  • Certificate appears in the store
  • Provider is: QCecuring Key Storage Provider
  • Container name matches your Key ID

Verify Certificate Linked


Step 4 — Ensure Signing Agent is Running

Section titled “Step 4 — Ensure Signing Agent is Running”

Verify the agent service is active:

Terminal window
Get-Service QCecuring-Code-Signing-Agent

Status should be:

Running

If not running:

Terminal window
Start-Service QCecuring-Code-Signing-Agent

Sign using the certificate thumbprint:

Terminal window
signtool sign `
/sha1 <Thumbprint> `
/fd SHA256 `
app.exe

Signing File

Optional timestamp:

Terminal window
signtool sign `
/sha1 <Thumbprint> `
/fd SHA256 `
/tr http://timestamp.digicert.com `
/td SHA256 `
app.exe

Terminal window
signtool verify /pa /v app.exe

Verify Signed File

Expected result:

Successfully verified

Additional verification view:

Signed File Certificate Details

Signed File Signature Details


Creating a Self-Signed Certificate (Testing Only)

Section titled “Creating a Self-Signed Certificate (Testing Only)”

You may generate a test certificate in QCecuring for development purposes.

Create Certificate

Production environments should use publicly trusted code signing certificates.


  • Confirm certificate exists in Cert:\CurrentUser\My
  • Verify correct thumbprint
  • Confirm provider is QCecuring KSP
  • Confirm Signing Agent is running
  • Check backend platform health
  • Verify key permissions and policy approvals
  • Verify outbound internet access to timestamp server
  • Confirm /tr URL is correct