A few days ago, I visited an SSL protected website.

Since Safari complained about the SSL-certificate, I did a short inspection:

The certificate was issued by GoDaddy in just the minute I visited the site.

While this might have been a matter of chance, I don't believe.

Therefore, do CAs exist, which issue SSL certificated on demand? I mean, each time a user loads the first URL of a site?

Never heard of such a CA. And can't believe, that a CA can even generate SSL certificates in such a high frequency.

In this context, my other question might be of interest.

  • 5
    If Safari complained about the certificate, you have no assurance that it was issued by GoDaddy. Only that whoever did issue it wrote "GoDaddy" in the name field. – Ladadadada Oct 14 '13 at 22:08

There is nothing technologically hard in issuing certificates. It is just a bit of encoding, and a signature; a basic PC can do that a thousand times per second. While CA don't normally indulge in on-demand certificate issuing, there is no inescapable technical barrier to it.

The most plausible explanation is that you are currently connecting through a proxy which does a man-in-the-middle "attack" and really generates a fake certificate on demand. Not a real attack in the sense of some fraudster trying to pick on you; more an "institutional" attack by the local sysadmin, running a product like that one. This is becoming popular in corporative environments.

To check whether this occurs, a simple trick is to change your system date. Indeed, one conundrum of MitM proxies is that they must generate a certificate which will be accepted by the client, which, in particular, implies that the certificate must be such that the current time, as believed to be by the client, falls within the validity range. An often overlooked property of SSL is that both client and server tell to each other their own notion of the current time, in the early stages of the handshake procedure. This allows the server to know how the client's clock is set. If you change your current date and time to, say, last week, and the server's certificate follows that change (close all browser windows and restart it to ensure that a new SSL session is used), then the server's certificate was definitely produced on demand, because there is no other way that certificate would adjust to a wildly off client clock.

You will also want to see to what trust anchor (aka "root certificate") the server chain goes up. If an institutional MitM is in force on your system, then the chain will go up to a corresponding "rogue" root CA. What should happen with GoDaddy's certificates is described here (of course, the MitM may theoretically alter that page as well, as you see it; but if there is a discrepancy between what GoDaddy states and what you observe then it is proven that there is some ongoing foul play).

  • Thx for a beautiful explanation! The system on which I saw this behavior, isn't part of a corporate network. The system is connected to a larger ISP through I router I control. – SteAp Oct 15 '13 at 18:49

On-demand SSL certificate issuance is possible, but uncommon in real-world usage. GoDaddy and a few other companies are in a unique position to issue certificates on-demand, since they themselves can actually sign the certificate.

But it's worth pointing out that there's no significant business reason to do so, but there would be significant cost both in terms of security and dependability. It's just not done. In fact, the GoDaddy SSL certificates I see right now on their homepage was issued back in 2012.

On the other hand, on-demand SSL certificates are issued in real-world cases by proxy servers that do man-in-the-middle interception of SSL traffic. Basically, every time you visit a site, they create a new certificate that maps to the site you intend to visit. The name on the certificate matches the URL in your browser, so the certificate is accepted even though it's not really the one sent by the destination server.

These proxies must have their own signing certificate installed on your computer, otherwise this whole scheme won't work.


It is unlikely that a CA such as GoDaddy will issue you a SSL certificate "on demand each time the SSL site is loaded". This would mean that the site in question has the CA private key (for signing their certificate), other scenarios would incur too much delay while establishing the SSL session.

Technically it is possible to generate a SSL certificate when a new SSL session is started, this is done by the Webscarab tool when proxying SSL requests. For this on-the-fly generated certificate to be trusted by the browser, you must add the Webscarab CA certificate to your trusted CA list.

In your case, it is probably coincidence that the sysadmin updated the certificate just before you opened it. When your clock is out-of-sync, then the "Not Before" validity time might hit you. For this reason, the CA I use sets the time slightly in the past. Have you checked whether your clock is correct? Perhaps you need a new RTC battery and have to enable NTP.

Another explanation is that the (sub-)CA key got compromised and that someone is abusing this to perform a MitM attack.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.