Skip to content
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

Code signing cert changes #2646

Closed
rvagg opened this issue May 6, 2021 · 7 comments
Closed

Code signing cert changes #2646

rvagg opened this issue May 6, 2021 · 7 comments
Labels

Comments

@rvagg
Copy link
Member

rvagg commented May 6, 2021

I got this today from DigiCert but don't have the time right now to figure out the impact.

Starting from May 27, 2021, 14:00 MDT (20:00 UTC), DigiCert® will require 3072-bit RSA keys or larger for code signing certificates. This change is to comply with industry standards. These new RSA key size requirements apply to the complete certificate chain: end-entity, intermediate CA, and root. Note that ECC key requirements remain unchanged.

Code signing certificates issued before May 27 require no change and will work until they expire.
After May 27, new, renewed, and reissued code signing certificates from DigiCert will automatically issue with new intermediate CAs and roots.
After May 27, all code signing certificates will require CSRs with 3072-bit or larger RSA keys. EV code signing certificates will need a new token or an HSM that supports at least 3072-bit keys. Currently most tokens and HSMs only support the smaller 2048-bit keys.

IIRC this is all about Windows Authenticode signing cert. I thought we had 4096-bit certs but 🤷. It doesn't look like this impacts us at all until renewal. I also don't know what renewal date is but I think they have a 4 year life so we're probably mid-way through our second.

We probably need better documentation about certs and expiry so we can look these things up and not have a SURPRISE EXPIRY PARTY.

@mhdawson
Copy link
Member

mhdawson commented May 6, 2021

I helped renew them in #2415. That was Oct 2020 so we are still in our first year. It mentions 3 years so we should be still good for over 2 years.

@richardlau
Copy link
Member

Can confirm that the current Windows certificate is good until Mon Dec 18 13:00:00 2023 (based on x64 node.exe from 16.1.0). Also appears to be a 2048-bit CSR -- that value is also what the instructions in build/release/windows_authenticode_renewal.md in secrets says to use to generate the CSR.
image

Anecdote: A long time ago when IBM was building its own distribution of Node.js we signed the binaries with our own certificate and I had put in place a script that scraped the signtool verify output to check the signed binary verified and that the certificate expiry was beyond the next 6 months (may possibly have been a greater time window -- the idea was to give enough time to get a new certificate when the check failed). Ultimately we stopped producing our own binaries way before the certificate (and the test) expired.

@mhdawson
Copy link
Member

mhdawson commented May 7, 2021

@richardlau could you find that script, and then setup a github action that would do the check for us once a month?

@richardlau
Copy link
Member

I'm fairly certain the script is long gone but it wouldn't be too hard to code up again. I'll see what I can do.

@mhdawson
Copy link
Member

@richardlau do you think setting up the script is still a good idea?

@richardlau
Copy link
Member

@mhdawson I do.

@github-actions
Copy link

This issue is stale because it has been open many days with no activity. It will be closed soon unless the stale label is removed or a comment is made.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants