The dangers of SSL certificates

17 points by typesanitizer


edk-

Any aspect of your operation is “dangerous” if it doesn't often go wrong. I am not a fan of the operational burden of ever decreasing certificate lifetimes, but to call them a “fundamentally dangerous technology” is extreme, imo. It is an obvious thing to monitor and document and you have (at least for now) a few weeks from renewal failure to big problems. If you can't tell your renewals are failing, you can either invest a few hours in setting up monitoring, or set a reminder to check your certificate expiry every couple weeks.

More annoying than it needs to be? Maybe you could argue that. But “fundamentally dangerous” it simply is not.

I think we should perhaps be worrying a bit more about what we'd do if Let's Encrypt disappeared overnight, but that's another story.

babak

Calling SSL certificates dangerous because they expire is like calling locks dangerous because they can lock you out. Even ignoring all the automation that is possible today, at the end of the day it comes down to a calendar reminder. If that's too much to handle perhaps the service is not all that important anyway.

JustinAzoff

So the full error was:

ERROR: Error computing the main repository mapping:
Error accessing registry https://bcr.bazel.build/:
Failed to fetch registry file https://bcr.bazel.build/modules/platforms/0.0.7/MODULE.bazel: 
PKIX path validation failed: java.security.cert.CertPathValidatorException: 
validity check failed

There is a "fundamentally dangerous technology" here, but it's not the certificate, it's the central registry.

The "Error accessing registry" Could have been due to:

If bcr.bazel.build breaks your workflow you should be asking why your build tool has a hard dependency on someone else's computer, not complaining about certificates.

msangi

I had more than my fair share of TLS-related headaches so I sympathise with the post.

For my own websites I have a Gatus instance periodically checking that the services are up and that the TLS certificates still have a long enough lifetime. Don’t trust the renewal process to always happen flawlessly and don’t even trust it to report issues.

david_chisnall

The graceful degradation idea is interesting. I wonder if TLS certificates should have multiple expiration dates:

For web browsing, the second would make things a bit slower but the third would be ignored. For build tools like Bazel, the third would print a message saying ‘TLS certificate is still in use after documented renewal date’ and then anyone using the tool would get a warning that might prompt some action.

As I understand the format (in as much as I understand anything related to ASN.1) you can add arbitrary additional fields to TLS certificates, but some signing infrastructure (in particular, Let’s Encrypt) strips ones it doesn’t know about from the CSR, so perhaps this would need a bit of coordination to deploy.