Hitless TLS Certificate Rotation in Go
diogomonica.com
Hitless TLS Certificate Rotation in Go
1–10 of 11 posts
Re: Hitless TLS Certificate Rotation in Go
#2I wish there was a CA out there that could let you requests new certs more frequently.
Yes there's Let's Encrypt, which is amazing and works great but the ratelimits[1] really kill you if you're not careful. I've had a few issues where I've triggered the LE ratelimit with a production domain and got locked out of making new certs for a whole week. I would gladly pay for an ACME CA which does not enforce these ratelimits.
Re: Hitless TLS Certificate Rotation in Go
#3Nice writeup! I wish there was a CA out there that could let you requests new certs more frequently. Yes there's Let's Encrypt, which is amazing and works great but the ratelimits[1] really kill you if you're not careful. I've had a few issues where I've triggered the LE ratelimit with a production domain and got locked out of making new certs for a whole week. I would gladly pay for an ACME CA which does not enforce…
Re: Hitless TLS Certificate Rotation in Go
#4But (there was always a but coming) ... the word "rotation" is over-used here and very dangerous, because it doesn't emphasize what's important. To many it means "deploying a new credential". That's not that important at all, at best it's a means to an end at worst it's make-work. What's important is that credentials are revoked. It's exactly like the important part of backup systems being that we can restore (and we should really call them "restore" systems).
When a credential becomes compromised, what you want to do is revoke it and make sure it stays revoked, other wise the attacker's goal is complete. So think of it a "Revocation" system, and call it that.
Viewed in that context, it become more apparent that the write-up doesn't mention, or test or check, that the credential actually is revoked and doesn't work any more. But that's the most critical step. Even if you're relying only on expiration times (which seems unsafe!) it's important to check for broken checks (like fail-open configurations that let everything in), broken clocks, etc ...
Re: Hitless TLS Certificate Rotation in Go
#5Nice writeup! I wish there was a CA out there that could let you requests new certs more frequently. Yes there's Let's Encrypt, which is amazing and works great but the ratelimits[1] really kill you if you're not careful. I've had a few issues where I've triggered the LE ratelimit with a production domain and got locked out of making new certs for a whole week. I would gladly pay for an ACME CA which does not enforce…
I'm actively considering what it would take to set up a for-profit ACME CA, and pricing based on rate limits might be the key business model insight I needed. Thanks!
It might be easier to resell someone else's certificates.
Re: Hitless TLS Certificate Rotation in Go
#6[0] https://golang.org/pkg/sync/atomic/#example_Value_config
Re: Hitless TLS Certificate Rotation in Go
#7So I'm not 100% certain on this, but this flow seems like like it would be a good candidate for atomic.Value[0]? The the mutexes could be removed entirely. That way you don't need to get a lock on every config read. [0] https://golang.org/pkg/sync/atomic/#example_Value_config
Re: Hitless TLS Certificate Rotation in Go
#8Re: Hitless TLS Certificate Rotation in Go
#9This is a good write up, and it's awesome to see on-line rotation of certificates. But (there was always a but coming) ... the word "rotation" is over-used here and very dangerous, because it doesn't emphasize what's important. To many it means "deploying a new credential". That's not that important at all, at best it's a means to an end at worst it's make-work. What's important is that credentials are revoked. It's…
Re: Hitless TLS Certificate Rotation in Go
#10This is a good write up, and it's awesome to see on-line rotation of certificates. But (there was always a but coming) ... the word "rotation" is over-used here and very dangerous, because it doesn't emphasize what's important. To many it means "deploying a new credential". That's not that important at all, at best it's a means to an end at worst it's make-work. What's important is that credentials are revoked. It's…