-
Notifications
You must be signed in to change notification settings - Fork 9
Windows: Code signing #617
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
jermy-c
commented
May 16, 2025
- Here are changes for CI to code sign our app
- We need to test if setting these env variables on a local machine code signs successfully and doesn't break the code
- I've set different CSC_* secret names so we can have one for Parula and one for Mustang
- If we're setting the CSC_LINK directly in base64-encoding then we might get a character limit error, then we need fix that by creating a file and writing the certificate there and link to that
|
Where can we put the certificate? Is my understanding correct that it contains the private key used for signing? I am not comfortable putting that on a publicly accessible HTTP URL, even if it's encrypted and you need the password to use it. |
Signing methods:
both in cloud and in app require would be a few lines of scripting to integrate into CI |
We'd have to put it as a Github secret. It should not be publicly seen but it'll be on Github similar to the Mac builds. |
Can you please tell me exactly how I would do that? What exactly should I put on which page where in which format? I know GitHub secrets, but they map to environment variables, and you wrote that the certificate is too large for that on Windows. Can we map the GitHub secret to a file on Windows? |
|
Another option is that we use the cloud signing of ssl.com . That would allow us to use their EV certificate or the cheaper normal one. If given the choice, I prefer the local certificate as file. But for EV, we might not have that option. |
CI setupLocal file SetupA local file setup would look something like what we have for Mac: mustang/.github/workflows/installer-mac-parula.yml Lines 27 to 37 in 59a0809
I would need find the equivalent command for Windows for that to work. Cloud SetupI don't think SSL.com allows this: For a cloud setup it would be the HTTPS link for You'd have to use their eSigning service workflow instead of the electron-builder workflow: https://www.ssl.com/how-to/cloud-code-signing-integration-with-github-actions/ Github Secrets SetupWe'd need to setup secrets for the Repository. |
|
Ah, nice, I didn't know that you can map GitHub Secrets to files in CI.
Does that work with the ssl.com REST API for signing? Can you please check that? |
|
Given that ssl.com is deceptive about the price (the price for 1 year is actually twice as high as adverized), I decided to go with certum.eu . |
|
I've been searching if there's a command line tool or workflow provided by Certum to enable signing on CI but so far I haven't found any. They require you to use SimplySign to install the certificate on the system and then use SignTool to sign the app. There's no REST API either. |
|
From what I understood, they allow you to download the certificate, so it's a file on the local machine. The certificate is a standardized format, normally X.509 v.3 (RFC5280) in |
Open Source Code Signing - set
Open Source Code Signing in the Cloud
|
|
I got the "Open Source Code Signing in the Cloud". Are you sure you need their SimplySign tool? If we get a standard x509 certificate as file, then we can use any Open-Source sign tool. |
I'm hoping we can just Sign in with their tool and export the certificate as a file and also have the password for it, then just upload it at the minimum. However, looking at the requirements set by CA/Browser forum which are the standards they follow, it seems like the private key must be on a Hardware module or at least something similar.
If we have to use their tool, then we might need to either:
|
|
Running their "desktop software" is not an option. Let's forget about Certum, then. I asked for a refund. |
Azure Trusted SigningUPDATE: We cannot sign up for Azure Trusted Signing. https://learn.microsoft.com/en-us/azure/trusted-signing/quickstart?tabs=registerrp-portal%2Caccount-portal%2Ccertificateprofile-portal%2Cdeleteresources-portal
Pricing$9.99/month for 5000 signatures CI Process
SSL.comPricingFor CI to work, we'd need 2 services: the certificate($129/year) and the eSigner service($20/month)(so you don't need a physical USB). Certificate Pricing eSigner Pricing Only the first 30 days include eSigner for free CI ProcessThey have an article for the using eSigner with GitHub Actions. |
|
ssl.com: I understood that the "cloud signing" is included in the ssl.com code signing cert. If this costs $1 USD per signed file on top, that's too expensive. Let's try to use Azure, then. |
e97466f to
cff88be
Compare
496d771 to
cbe1a12
Compare
ccec132 to
037e896
Compare
7d2a658 to
3640c13
Compare
UpdateNot sure, if it's true or not but seems like Azure Trusted Signing is available for European organizations now.
|




