Linux Box Admin
Trusted Remote Administration
logo

Tilde
What's new
Articles
Micro HowTos
About
Contact



Fresh Micros




SSL: How to choose a certificate authority
(1 vote)
Monday, 05 June 2006
  SSL: How to choose a certificate authority
exclusive content published on June 5, 2006

Secure Sockets Layer (SSL) is the backbone of e-commerce on the web. It is the protocol used to encrypt communications between a web browser and web server, though it can also be used for other applications. To use SSL on your own web server, you often need to deal with an external company called a certificate authority (CA). Three major considerations come into play when choosing a CA: trust, audience, and cost.

Quick SSL background

SSL was created by Netscape to enable secure e-commerce and rapidly became a defacto standard. SSL uses public key encryption methods to verify the authenticity of a server or client and encrypt communications between them. In a typical web based application, it is the client that requires authentication from a server. To identify itself, an SSL certificate is installed on a web server and the client checks the credentials of the certificate to make sure it is valid and signed by a trusted third party. Trusted third parties that sign SSL certificates are called certificate authorities.

The life and death of an SSL certificate

This is the standard process used to get an SSL certificate from a CA. I won't repeat the installation details because excellent guides abound.

  • User creates an SSL key pair (public/private)
  • User creates a Certificate Signing Request (CSR)
  • User sends the CSR to a CA
  • CA returns a signed SSL certificate
  • User installs certificate on web server
  • Certificate expires (or is renewed)

In Linux, the CSR is created with openssl. Each CA has guidelines on their web site about how to fill out the fields in the CSR. Not all fields are used by all CAs.

Trust

The goal of using SSL is to prove your identity (either as a server or a client). To do that, you have to trust the certificate authority, the certificate authority has to trust you (by verifying you are who you claim to be), and the client has to trust the certificate authority. If you pick a CA that your clients don't trust, you lose business.

The procedures and policies used by different CAs to verify your identity are not uniform. Sometimes, a CA will require printed letterhead with the address of your organization on it and follow up with a phone call to the contacts. Some go further and look up Dun and Bradstreet information or use online resources. One CA I worked with recently required that the domain be listed in a particular WHOIS database. These details may add to or diminish your confidence in the judgment of a CA. One that does no verification at all won't instill a lot of trust in your clients.

Audience

Another major consideration is whether the user base will be mostly internal or external. If internal, you theoretically have more control over the client configuration and more options when it comes to CAs. If external, you have no control over the client, and you can't afford to inconvenience them just to use your web site.

Most web browsers come with a set of CA certificates already installed. These trusted CA certificates are used to validate the signature on certificates downloaded from other computers. The browser will warn you if it doesn't recognize the signer. Sometimes this warning will scare off uninformed visitors. While you can add additional third party CA certificates to most web browsers, many people don't understand how to do it, and don't want to be bothered. This puts the pre-loaded certificate authorities in an advantageous position.

I compared the pre-loaded certificates in the following browsers to find the common ones. Here are the common CAs I found in IE 6, Firefox 1.5, Opera 8.5, and Safari (Tiger):

Common CAs across browsers
Baltimore Cybertrust
Entrust
Equifax
GTE
TC Trustcenter
Thawte
UTN
ValiCert
Verisign

Note: I found it interesting that the root CAs in Safari are stored in a keychain database and can't be viewed from within the browser. So much for ease of use. I had to use a command line tool called security to dump the CAs out of the database.

The most conservative approach is to use one of the common pre-loaded CAs. This ensures there will be no pop up warnings when people visit your SSL enabled site. This assurance comes at a price since the popular CAs charge more for their services.

An organization that has the resources may choose to set up the necessary infrastructure and act as its own CA, especially for internal projects. Self signed certificates may be created and client certificates installed to identify both the client and any server with which it communicates.

Cost

The services provided by a CA are largely the same. They process CSRs, sign, and return certificates. However, the cost of certificates vary widely. When I priced a 2 year certificate from two of the top CAs, one was double the price of the other. Prices reflect the expiration date, (usually one, two, or three years from the date it is signed), encryption strength, whether the CA certificates come pre-loaded in most browsers, and reputation. Special features, like a certificate that can be used with domain wildcards also cost extra.

Some CAs may offer optional services that make it easier to track certificates or renew them faster. If you are managing hundreds of certificates, those services may be worth the expense. If you are managing only a handful, those extra services are overkill.

There are several low cost CAs, and even one that will sign your certificate for free. The root certificates of most bargain CAs do not come pre-loaded in the browsers, so they are probably not the best choice for external applications.

update June 8, 2006: Eddy Nigg from Startcom.org wrote to say the Startcom root certificate has been approved to be included in all future versions of Firefox and Thunderbird. Startcom is working to get it into all popular browsers as quickly as possible.

 

Copyright © 2006,2007 Linux Box Admin.

 
My NHL fan blog