In case of server SSL certificate it is issued by a CA which can then recall it until it expired and also the CA typically collects a fee for each certificate so it is interested in certificates expiring every year or so.
My question is about client certificates. Suppose I want to make calls to Azure Management API service. I generate a certificate on my computer, export it with a public key and then upload it into Azure Management Portal. Then I write some code that loads the same exported certificate from a local file and somehow magically authenticates the HTTPS connection. The Management API service gets the request and checks whether the certificate used is the right one.
The point is there's no authority here. If my certificates gets compromised I generate a new one myself and then go to the portal and add the new certificate and delete the old one. I then change my client software and whoever has copied my earlier certificate is locked out.
It sounds like it's in my interest to generate a certificate that expires as late as possible - something like 10+ or 50+ years from now.
Why would I not generate a certificate expiring as late as possible in this scenario?