Our company uses a web server with a couple of web sites on it (private and public, over HTTP and HTTPS, some low risk and some high risk including online payments or other sensitive data for example).

In our last project, we communicated with a partner company through web services. They wanted to use their own certificates, issued by themselves, to secure the connection. So we had to install their root certificate "PrivateCompany Root CA" on our web server.

Just how bad is this exactly? In what scenarios our security can be tampered with?


So we had to install their root certificate "PrivateCompany Root CA" to our web server.

Why? Globally trusted CAs are useful in general purpose clients like browsers.

But if you consume specific web services from a custom client you can add that CA locally. Every decent SSL client allows you to influence certificate validation. For example by specifying a custom list of CAs.

If you you do it this way, that CA can only be used to intercept those requests. Since the CA and the target domain are owned by the same entity, this doesn't pose a big risk. It's safer than using the standard CAs.

Just how bad is this exactly?

If they (or somebody who managed to steal their CA cert) are in a MitM position relative to your server they can intercept any SSL traffic where your client uses the global CA storage. It's not limited to their domain.


There is only full trust with the CAs you've installed. This means, that there is no restriction which certificates a trusted CA can sign. So it can also sign fake certificates for sites they don't own (e.g. banking.com) and you will accept them.

I don't know how you communicate with the partner, but with languages like Perl, Python etc you can specify a CA store, which gets only used for this specific communication. This way you could have your normal communication and the communication with the partner use different sets of trusted CAs.


As far as other Certificate Authority (CA) root certificates security is concern, then there are no issues expect if you are going to implement an authorized Certificate Authority SSL certificate.

If the security certificate is from Trusted Certificate authority then it never cause any security trouble.


To some extent what the company can do is limited to

  • The Name Constraints (if any are applied)

  • The Enhanced Key Usages (if any are applied)

Of course this depends on client software properly validating each and every intermediate certificate in the chain, up to and including the root.

It's possible that some client software doesn't validate the chain and/or skips certain checks so a certificate will be considered valid, even if the chain is "properly configured" to limit usage to specific purposes and/or domains.

To understand the magnitude of the software issue, look at this google search that discusses many C# approaches to disabling certificate validation.

Your Answer

