Ten years isn't long enough for maximum age settings
utcc.utoronto.ca
utcc.utoronto.ca
In a similar vein, you should never generate resources which will expire unless some undocumented action is taken. A common one I've seen is self-signed certs which last for n days, and are re-generated whenever an application is deployed or restarted, under the assumption that the application will never run untouched longer than that. (Spoiler: It probably will, at some point, whether due to unexpected change freezes, going into maintenance mode, or -- in my personal favourite -- being deployed to an environment that just isn't updated as regularly.)
That was a long time ago. I wonder if technology/the cloud has changed or they still run those same machines
Untested emergency plans are not a guarantee that the plans will work.
A year long expiry isn't frequent enough that you build automation, and is long enough that the runbook you have is likely out of date before the next time you execute it. If you make it 3 monthly, it's more likely to be fully or mostly automated, and it's more likely you'll remember that certs were recently introduced in a particular service. If you make it monthly, it's pretty much guaranteed that it'll be fully automated.
Almost every week in the weekly AWS-wide ops meetings, one service or another would be talking about something that went wrong that was caused by some certificate expiring, that happened in a place they'd forgotten they had certificates, or had missed when they did the rotation. A number of those failures presented in particularly misleading ways, too, by nature of what role the cert was playing.
And maybe you say "it's one outage either way, but isn't it better in ten years than next month?" But when you're constantly adding new services, eventually there will come a time where every month some new service is having its ten year anniversary.
Naturally, they didn't document this.
Most people won't document well enough to even be aware that the 10-year deadline is approaching, much less how to fix it! When the deadline hits, everything will break, and then you basically have to reinvent the wheel to get it up and running again.
In my opinion, if something can last 10 years, then it could probably just last indefinitely.
Alternatively, have something that lasts a short time, but that is renewed automatically. I suppose that is the advantage of let's encrypt, for example, in that their certificates expire after 3 months, but that just means that I set up a Cron job to automatically renew them for me.
Most of them have either completely forgotten about it and how to do it, or there's been a change of employees and the new ones didn't get the memo, so to speak.
So it falls on us to remind them and guide them through the process.
How I wish the gov't moved to a 3 month setup like Let's Encrypt.
(That said, three months is better than any longer period. The shorter the rotation, the lower the risk -- but, more importantly, the stronger the impetus to build strong automation around the process.)
If we lowered the expiration time to say 3 days, with automatic renewal after 2 days, then any breakage on your side or downtime on let's encrypt's side would quickly escalate into https errors. That in turn would train users that those just happen, and make them ignore the big red scary page even when it's an actual attack. That sounds much worse than the small risk from a 30 day certificate.
That's already happened. I'm encountering LE errors on random websites so much that I don't care and automatically click through warnings. This is especially troublesome because my government keeps MITM me and I don't like it.
the lower the risk of compromised certs / keys. certainly not a lower risk of issues, or surprises.
hopefully -- emphasis on hope -- this regular action becomes routine and easy enough to that it is a low risk behavior.
I once met a person at a client org who was generally opposed to automation due to risks of forgetting how things work and not always knowing what the internals behind those abstractions are. It was an interesting take.
At the same time, something like Ansible and other methods of automation can be pretty useful and actually aid in documenting things.
It's especially good if you can spare 10% of your time to put some notes down in Markdown files in a Git repo, or source/deploy most of your automation scripts from there as well.
my blog and personal website are down for this reason, I simply can't spend half-a-day at this point in my life figuring out how to do this on OpenBSD. So I'd rather just leave it dead at this point.
Guess I could just buy an SSL certificate still, maybe I do that tonight.
And buying an SSL cert only gives you 368 days in Chrome / Apple browsers: https://support.apple.com/en-us/102028
For me it’s like;
blog.jharasym.com - namecheap
blog.jharasym.dev - gandi
blog.dijit.sh - self hosted with BINDIn a world of containerized and immutable cattle servers its not a good solution. Especially not when you technically only need it for something that is internally accessible.
Currently my homelab setup is based on running certbot locally in a docker and a calender entry - maybe I get annoyed enough and switch to my own cert at some point, but those are also a big pita.
As for forgetting deadlines are approaching, just set up automated checks for cert and domain expiration. I wasn't just checking our infrastructure but also any remote APIs/interconnects we were using too. There were a handful of times where I'd contact providers with 7 days warning just to confirm they were aware their certs were expiring; it was slightly terrifying how often they weren't.
Now: Oof ouch owie all these client certs are expiring
If any imaginable sort of explosion in usage means INT could overflow in your lifetime, just go BIGINT.
I've had this burn be so many times. You don't want to be trying to retype a primary key and all the foreign keys that point to it frantically in the middle of the night ten years from now.
You're safeguarding your or your successors sleep.
No chance of overflow, but as a BIGINT it would take a ton of space elsewhere.
Even then though, it’s potentially not worth it.
Thankfully I completely discontinued use of the relevant apps long before that deadline.
"We do not need to make profit, maybe we will be acquired, many things can happen".
Link? In https://utcc.utoronto.ca/~cks/space/blog/sysadmin/MakingSelf... I see him saying he uses 27y (9999 days).
cks also gave me some other amazing ideas, such as cross-grading my system from 32 bit Ubuntu to 64 bit. That was an ordeal and a half, but I'm proud to say that I finally achieved that goal without any reinstalls, rollbacks, or data loss.
64 weeks would've been better. Force it to be handled gracefully and tested thoroughly.
Though to be fair:
> If you don't have a plan to [...] definitely take it out of service, ten years is far too short.