Disclaimer. I'm not even sure if the question is worded correctly in the title. Neither am I sure if I'm asking the right question. If there's literature relevant to this topic, it'd be greatly appreciated.

I'm looking at hashicorp vault to facilitate certificate signing / authentication etc. One thing that bugs me is securing the distribution of the root CA cert and signing.

Basically Vault has to be secured using SSL. If the internet CA's private key is compromised, there's no point to using Vault (Or any PKI process that relies on internet CA) if the attacker decide to MITM and switch the distributed cert.

I guess the question is:

Is there any point or significant gain in setting up a private PKI that relies on the public PKI for signing/distribution?

1 Answer 1


The main drawback to issuing your own root certificate is that you will have to install it in each browser and OS in your organization. Depending on how many computers you're dealing with, and what kinds of computers they are, that could be a lot of work. (IoT devices may not have a good way to update their trusted root certificates, for example.) Also, be aware that installing a trusted root certificate in a machine means that machine is exposed during the installation process - a poor certificate distribution process could create a vulnerability for a rogue certificate to be installed.

Depending on your usage model and security policies, you may also have to provide a way for users who bring their own devices (BYOD) to download and install the certificate on their machines.

Another drawback of creating your own is maintenance complexity. Just whipping up a new cert with openssl is pretty easy, but you have to plan in advance to secure the private key, get it backed up and all copies stored safely offline, etc. Keeping the copies somewhere safe for 20 years can actually be quite a challenge (would you still have a way to recover an image from a 20-year-old floppy disk today? In 20 years, will you still have a way to read a 20-year-old CD-ROM?) You also need to document this fully, so that 20 years from now when this root certificate expires, the next CA admin will know how to spin up a new certificate, secure it, and distribute it. In 19 years, who is going to notify management that their old root CA is going to expire?

PKI experts are few and far between, so finding one when you need one can be a challenge for a smaller organization. You may need to bring in an expensive consultant to help get it set up securely.

You'll also want to provide a OCSP server, or at least host a CRL somewhere (although you'll need that anyway).

The advantages of signing with the public cert is that the public cert is already built into all commercial and open source browsers. The main disadvantage is cost: the commercial CAs are likely to charge you a premium for a certificate with CSA authority.

Another advantage of the public certificate is that your certificates will work outside of your organization. You won't have to distribute your internal root certificate to your vendors and partners, who won't want to install your cert because they'll have little reason to trust your PKI is safe. Of course, you can get around this even with a private PKI simply by purchasing a few externally signed certificates for those machines your partners connect to.

All in all, building your own PKI leaves you fully in charge of your destiny, which can be a good thing. Just make sure you're good enough to be safe, because you're dealing with the security of your entire organization's computing infrastructure for the next 20 years. Don't design it alone, and make sure you get executive level approval on whatever decision you make.

  • Sorry, but my question is not about merit of private pki. I am automating deployment of infrastructure in a private network. It's not optional. Question is about relying on public pki to distribute root cert for private pki. Dec 16, 2016 at 23:49

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .