Site icon SSL.com

Integrating eSigner with CI/CD Pipelines (A Complete Setup and Configuration Guide)

Scope note: This guide consolidates SSL.com’s existing integration documentation for eSigner CKA (Cloud Key Adapter) and eSigner CodeSignTool.  
  1. eSigner CKA vs. CodeSignTool: Which One Do You Need? 

SSL.com’s eSigner platform has two different client tools for CI/CD signing, and picking the right one up front avoids a lot of wasted setup time. 
  eSigner CKA  eSigner CodeSignTool 
What it is  A Windows CNG Key Storage Provider (KSP) that lets signtool.exe, certutil.exe, and similar Windows tools talk to eSigner as if the certificate were installed locally  A Java command-line utility that signs files directly via the eSigner CSC API 
Runner OS  Windows only  Linux, Windows, or macOS  
File types  .dll, .exe, .msi, .vsix, and anything signtool.exe can sign  .exe, .dll, .msi, .jar, and other Authenticode/Java-signable objects 
Best fit  Windows-native pipelines that already call signtool.exe  Cross-platform pipelines, high-volume/batch signing 
  CI/CD platforms with eSigner CKA guides: GitHub Actions, Azure Pipelines, GitLab CI, Travis CI (all four for .vsix signing), and CircleCI, GitHub Actions, GitLab CI, Travis CI (for .NET DLL signing via signtool.exe).  CI/CD platforms with eSigner CodeSignTool guides: CircleCI, GitHub Actions, GitLab CI, Travis CI, Jenkins, Azure DevOps, and Bitbucket.  If your pipeline runs on Linux or macOS runners, or you want one config style that works the same way across every CI/CD tool, use CodeSignTool. If you’re already deep into a Windows-based signtool.exe workflow, CKA will feel more native.    
  1. Pre-Integration Checklist (Do This Before Touching CI/CD Config) 

Almost every “signing failed” support ticket traces back to one of these steps being skipped or done out of order. Work through this list top to bottom.  2.1 SSL.com Account and Certificate  2.2 eSigner Credential and OTP Setup  2.3 CI/CD Platform Prerequisites  2.4 Optional: Windows-Specific Prep (eSigner CKA Only)  Once all of the above is done, pick the tool and platform combination that matches your setup below.    
  1. eSigner CKA: CI/CD Integration 

3.1 Common Setup Steps (All Platforms)  Every eSigner CKA workflow, regardless of platform, performs the same five actions:    
  1. eSigner CodeSignTool: CI/CD Integration 

4.1 Common Setup Steps (All Platforms)  CodeSignTool workflows follow the same two-stage pattern everywhere: a build stage produces the artifact, and a sign stage pulls SSL.com’s codesigner Docker image and signs it. The Docker approach means the same core command works nearly unchanged across CircleCI, GitHub Actions, GitLab CI, Travis CI, Jenkins, Azure DevOps, and Bitbucket — only the surrounding pipeline syntax differs.  Required environment variables/secrets: 
Variable  Purpose 
USERNAME  SSL.com account username 
PASSWORD  SSL.com account password 
CREDENTIAL_ID  Credential ID of the signing certificate. Optional only if your account has exactly one eSigner code signing certificate 
TOTP_SECRET  OAuth TOTP secret from your eSigner Authenticator setup 
ENVIRONMENT_NAME  TEST (sandbox) or PROD (live signing) 
Required inputs: 
Input  Purpose 
input_file_path  Path of the file to be signed 
output_dir_path  Directory the signed file will be written to (omit to overwrite the input file in place) 
  
  1. Sample Workflows 

Example workflows are provided in the following SSL.com guides:  eSigner CKA:  eSigner CodeSignTool, per platform:    
  1. Troubleshooting Common Errors 

Symptom  Likely Cause  Fix 
Credential ID is required / signing fails with no cert selected  Account has more than one eSigner code signing certificate  Run get_credential_ids and set CREDENTIAL_ID explicitly 
Signing hangs or times out on TOTP  Wrong or expired TOTP_SECRET, or the eSigner Authenticator wasn’t set up  Re-run the Automate eSigner EV Code Signing setup and regenerate the secret 
signtool.exe not found / wrong architecture error (CKA only)  Runner image’s Windows SDK path or bit-width doesn’t match the hard-coded path in the sample  Locate the actual SDK folder on the image (Windows Kits\10\bin\<version>\<x86 or x64>\signtool.exe) and update the path 
eSignerCKA install succeeds but no certificate appears in the store  unload/load step skipped, or ran before config finished  Ensure config ? unload ? load run in that exact order, in the same job/step context 
Sign stage can’t find the artifact from the build stage  Artifact path mismatch, or artifact not persisted/uploaded between stages  Confirm the exact path used in the build stage’s artifact upload matches the path the sign stage downloads to 
Signed file works in TEST but customers still see “unknown publisher”  Still pointed at sandbox  Set ENVIRONMENT_NAME/MODE to PROD once testing is complete, and confirm the certificate itself has completed validation 
  If none of the above resolves an issue, SSL.com support can assist with custom or high-volume signing setups. 
Exit mobile version