Respect my authority --#-- OpenSSL comes with a Perl script, CA.pl, that you can use to set up an authority and then issue certificates signed by that authority. Simply run CA.pl with the parameter -newca. This will create a certificate named "cacert.pem' and a private key file named "cakey.pem." cacert.pem will hold your public key. Distribute cacert.pem to anyone who needs to authenticate a server certified by you. But keep the private key file (cakey.pem) private!!! If it is compromised, your whole CA is compromised.

You can also use CA.pl to create "certificate requests," for instance a request for a new server cert, say "server.pem," and to sign it with cacert.pem. Then, any SSL server running with server.pem as its cert can be authenticated by any client that has access to cacert.pem.

But what about public servers out there on the Internet using server certificates issued by the big certificate authorities like Verisign, RSA and Thawte? In some cases you can obtain their public CA certs from their web sites. For instance, Thawte offers its public cert freely for downloading at http://www.thawte.com/serverbasic.crt. If you go to that URL with a standard browser, however, the browser will attempt to download the cert into its certificate database, or warn you that it already has it. To get around that you could use something like Pete to download the cert into a file

If you want copies of all the major CA certs on your hard drive so you can play with OpenSSL, then just dump them out of a browser's database. Dumping from Netscape's database is easiest.