singingtree certificate authority

If you have used any SSL encrypted services on the servers that I administer, you have probably encountered errors related to untrusted certificates. These errors can be silenced by teaching your browser to trust the so-called "certificate authority" that I have created. This is a sort of "master certificate" that I use to sign the certificates granted to individual servers, such as "webmail.singingtree.com", "imap.dci.pomona.edu", etc.

Now that you've clicked on the link, your browser is probably doing something funny. If you aren't sure how to proceed, I have supplied some basic instructions for Mozilla and Netscape or Internet Explorer.

Note that I did not say that downloading this file will make you more secure, only that it will silence the errors. It is possible to use this certificate to derive some meaningful security benefits, but you must understand and use it properly. Specifically, you must verify the certificate fingerprints with me in person or by telephone. Please read on for an explanation, or if you aren't interested, you have no security anyway--there's no sense worrying about it.

How does this work?

SSL (also called TLS) is a complicated set of protocols that are intended to protect sensitive information from being intercepted as it travels across the Internet. When your browser connects to a URL that starts with https://, it starts an SSL "session", the padlock icon appears at the bottom of your window, and all further information exchanged between you and the Web server is encrypted. This makes it difficult, maybe impossible, for an eavesdropper watching the conversation to understand its content.

This is nice, but it does not address a subtler and more dangerous security threat: How do you know that the server at the other end is actually the one you meant to connect to? There are ways that I could trick your computer into thinking that my evil server is "www.wellsfargo.com". If I have set up my evil server to look exactly like the real Wells Fargo site, which is also pretty easy, you would not know anything had gone wrong until after you had tried to log in, revealing your account number and password.

The people that designed SSL tried to solve this problem with so-called "server certificates". Basically, a server certificate is a unique piece of identifying data that another server cannot forge. This means that I, the evil hacker, can't simply copy the certificate from the Wells Fargo server along with everything else.

But, this only brings us to another problem, which is that we still don't have a way to know that the unique certificate presented by the server actually belongs to the rightful owners of wellsfargo.com. (Confused yet?) To solve this problem, the designers of SSL invented "certificate authorities". These are supposedly trustworthy corporations that act kind of like a notary public for SSL certificates. They are supposed to look at your credentials and make sure that you really are who you say you are, then they "sign" your server certificate. Finally, browsers are distributed preprogrammed to trust server certificates signed by one of these large corporate Certificate Authorities, which forms the foundation for the whole rickety pyramid scheme of trust.

My server certificates are not issued by one of the large, official Certificate Authorities that browsers are preprogrammed to trust. Instead, I have created by own (not very authoritative) Authority which is represented by the file at the top of this page. Since the number of people involved is fairly small, we can achieve decent security as long as you verify that the Certificate Authority file you downloaded has not been tampered with.

How can I be sure that I got the real certificate?

To be sure that the file you just downloaded is really the one that I created, you have to compare the certificate's "fingerprint" with another, non-Internet source of information. Here are a few ways this could be done:

Why don't you have a real certificate, or, Why are certificates a waste of time?

This rant has been removed to a new site consecrated for just such rants.

Installing the CA in Mozilla, Firefox, or Netscape

The first window will say, "You have been asked to trust a new Certificate Authority".

Having satisfied yourself that the fingerprints are correct, do the following to install the certificate:

Installing the CA in Internet Explorer

The certificate installation process on Internet Explorer 5 is needlessly long and complicated:

Installing the certificate in Apple OS X

The following should help with programs that use the OS X certificate storage, such as Mail.app and probably Safari.

screenshot of Keychain Access