SSL: How to Choose a Certificate Authority
lessthan0 writes "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."
www.cacert.org
Better yet -- go to Applications, go to Utilities, and double-click on Keychain Access. From here, you control what certificates (et al) are used by the operating system, not just the web browser. OSX moves SSL into shared primitives, meaning that Safari, Mail, iChat, and anything else you might have installed all follow the same rules. For instance, if you want to trust CAcert, you load it into your keychain once, and everything knows about it. Try that under IE or Firefox.
This makes a lot more sense than making SSL the responsibility of the individual applications. Saying that unqualified would make me a Mac fanboy, and -1 Offtopic, so I should also point out that this approach is used by KDE as well: there exists one master repository of certificates that everything else talks to, and it's not the web browser. "So much for ease of use", indeed.
This article is wrong. The three major considerations are cost, cost and cost.
Commercial SSL certs are 100% scam. CAs pay browser vendors for the ability to extort money from website owners.
My grandmother doesn't know that Verisign exists, nor AddTrust, nor any other CAs. She particularly doesn't know how or why Verisign checks a certificate before signing it, and she wouldn't understand the differences in the way that any other CA does it either. The one and only one thing that she does know is that the error that pops up if a site tries to use a certificate that hasn't paid Microsoft a fat wad of cash confuses her.
If you just woke up from the early 90s and still have some misplaced faith in the SSL CA system, by all means, read this. If you are a consultant pushing a CA that gives you kickbacks, give this to your customers. If you just want people to be able to click your https links, get the cheapest certificate you can find, no one will ever know the difference.
See that "Preview" button?
Has anyone noticed that all >> 4 of the articles on that website have made it to /.? Kinda makes you think. (I'm not 100% sure all of them have and I'm too lazy to check, but I think I've seen them all on /.)
Does CAcert even check the validity of your site? I don't mean that the others do or that they're better, but I don't think that this is any better than a self-signed certificate, since anyone can get a certificate automatically.
Send email from the afterlife! Write your e-will at Dead Man's Switch.
Microsoft does it. Going to https://licensing.microsoft.com/ in Firefox asks whether or not you want to trust the certificate.
The US military does it. Going to https://www.mol.usmc.mil/ in either IE or Firefox asks if you want to trust the cert.
I'm not sure about IIS, but openssl certainly has a mechanism for signing your own ssl certs, as do load balancers with ssl acceleration support. Commercial, "trusted" ssl certs seem to be useful primarily for preventing security warning popups.
From my own experience with Equifax (currently GeoTrust & soon to be Verisign thanks to acquisitions and consolidation) I know that it took them years to get their root certificate added into the Java keystore. Any application using a not-very-current version of the jdk will still generate errors when faced with GeoTrust certs. Buying certs from a smaller CA with less penetration into end-user keystores can be little or no better than signing certs yourself.
From my viewpoint, the only two viable options are paying top dollar for the certs that will work for most people or signing your own. Which option to go with is largely a budget issue.
-DaveU
Cost it almost the only issue. The caveat is to double check
that the CA's public key is seeded into IE and Firefox.
Maybe if you're expecting to do a lot, finding the 'least annoying'
key administration might be worth review.
would it have been too much to ask for for frickin' *links* to the common CAs listed? maybe even a price comparison if the author was feeling friskly?
http://kered.org
I'm guessing you haven't run a web server more sophisticated than your home blog.
On most browsers, there are three errors that users bump into frequently. If you run any type of commercial site or any other site where credibility of your product or service is important, you want to make sure your users never see these errors:
1) "Certificate expired." Among other things, this suggests that your company is too lazy or broke to care about such things.
2) "Cert hostname doesn't match site hostname." This is actually an error that people using commercial-CA-issued certs actually see a lot when techies decide to hand out IP addresses of SSL-secured sites instead of hostnames. To users, this message suggests they have reached a stolen cert or otherwise bogus site.
3) "Cert CA isn't trusted." This is the error the author of the parent comment suggests you "teach" your users to click through. If you like individually trusting certs, this is probably the most "harmless" (assuming you manually validate the fingerprint, etc.), but that type of thing is beyond the reach of the average user. In any case, this message suggests to users that your web site has a security problem.
Before CACert will believe you own domain.com, you have to demonstrate that you can read email sent to root@domain.com, webmaster@domain.com, or any of a few others. I think it's a pretty good tradeoff between convenience and security, since, if somebody can read your root mail, you're pwned anyway.
Since I don't have mod points, I will simply support this statement. Cost, cost, cost! Man, I can't believe what some of the big names are charging to put their little stamp of approval on a cert. Ok, *maybe* they do a little legwork to ensure that the person requesting the cert is who he says he is, but as the parent pointed out, that doesn't matter to you. You know you are who you say you are. So just pick the cheapest signer.
-matthew
"THERE IS NO JUSTICE, THERE IS ONLY ME." -Death
a certified page represents just that, and nothing more. you should look at the cost aspect of it alone.
if you can dish-out the dough to get a certificate, by all means, go for it. if you can't then you can go for a cheaper certificate, or even your own certificate. you can ask your clients to trust your certificates and add them to the list of trusted certificates, or trust the certificate on a per-session basis.
you don't lose anything; and still get the job done.
it's a whole different ball-o-wax though if you're using your site for credit-card transactions. somehow, i wouldn't feel comfortable putting up the numbers on any site not verisign certified.
* lon3st4r *
Quite seriously, we save a bundle on the license fee by having our own University of Washington issue the certificate and be the verifying authority, rather than pay a fairly steep SSL fee. Now, admittedly, you need a user base that will "trust" a certificate "verified" by the University of Washington, but in the research world this is fairly common.
If you don't trust us, why are you sharing data with us?
That's the question we ask.
Now, if you're going commercial, I think you need to use one of the standard SSL authorities, even though it is more expensive.
-- Tigger warning: This post may contain tiggers! --
A good tip in the article is check your audience!
SSL certs can be used for IMAP/SMTP, and clients such as the SnapperMail for the Palm only support verisign/thawte as a CA. I couldn't install a different CA. There is an option to trust anyway, but then this opens an attack vector: anyone could create a self-signed cert and claim it as the original server. This was a year or so ago, it may have changed by now.
I'm pretty sure the web client on the Treos are the same way.
In most cases you can actually do a lot with a self-signed certificate. Especially if your aim actually is just to provide encrypted web pages and handle secure emails within your organization.
And even if you are providing public services you actually don't need a commercial certificate - you can run your own CA, as long as you provide sufficient information to your customers about what the situation is and how they can add your services to their list of trusted services.
If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
Secure connection should not be tied to a verified domain. That is just stupid. Any site should be able to offer secure https for free with no alerts. Now, if they want a verified secure connection, sure, pay up for a certificate. It will give users additional trust in your website ("I see that Verisign has verified these guy... they seem alright").
Yeah, they should rewrite /. in php just so they can use your user agent hack. Good thinking. Meanwhile, IE supports conditional comments, so it's easy to include a stylesheet that only applies to IE, no browser sniffiing, no css parser hacks.
Do you even lift?
These aren't the 'roids you're looking for.
you can ask your clients to trust your certificates
Through which medium? How do your clients know that their DNS isn't being spoofed when you give them your root certificate to install?
If you don't trust us, why are you sharing data with us?
It's not that I don't trust you as a business entity; it's that I don't trust the network between us. When I visit www.washington.edu to download University of Washington's root certificate, how do I know that, say, the DNS isn't being spoofed and there isn't a transparent proxy acting as a man in the middle?
And even if you are providing public services you actually don't need a commercial certificate - you can run your own CA, as long as you provide sufficient information to your customers about what the situation is and how they can add your services to their list of trusted services.
What is this "sufficient information"? I can imagine that it would include at least a root certificate. So how do you get it to the client without a man in the middle interfering?
Thanks for filling in the holes. :-)
Build OpenSSL under win32...
http://www.devside.net/web/server/windows/openssl
Create and Sign your own certs...
http://www.devside.net/web/config/ssl-key-pair
IIS 6.0 Resource Kit Tools has an application called SelfSSL.exe that does everything for you to self-sign a certificate in IIS. It does work in IIS 5.1 as well (I used it last week) under WinXP. It was definitely possible before to self-sign a certificate in IIS, but this tool makes it a lot easier.
so just do CTL++
self signed.
See http://www.cacert.org/ for a solution to getting CA's at the price they SHOULD BE ... ZERO, NADA, ZILCH. If enough people get in here, then it'll be a likely candidate for a Root level certificate in all browsers and systems.