code-signingdigicert

Is it possible to soften impact of recent changes to code signing process?


Code signing industry recently adopted CAB forum recommendations wrt code signing. Now private keys can only stored on hardware (USB key) provided (or managed) by CA.

I see following downsides to this:

Is there a way to avoid some of this pain?

Options I see:

  1. don't use code signing -- tempting, but not really an option in our case
  2. find another CA -- apparently all CAs adopted(ing) these recommendations. Let me know if it isn't true, please
  3. create a dedicated server in our environment and use it just for signing (incorporate it into the build process). I would love to hear a recommendation on how to facilitate this. There bound to be utilities for that....

Solution

  • Assuming your private key is held by the DigiCert ONE service, you can replace signtool with Jsign to sign your binaries (disclaimer: I'm the author). Jsign is cross platform and sends directly the hash of your file to the DigiCert API, so you aren't tied to the DigiCert client tools requirements.

    The syntax looks like this:

    jsign --storetype DIGICERTONE --alias test \
          --storepass "<api-key>|/path/to/Certificate_pkcs12.p12|<password>" application.exe