So how secure are these certificates, you ask. AIM security is based on S/MIME, which is a relatively new standard, but is itself based on pretty established techniques and is gaining broad acceptance. So barring any implementation flaws (unintentional or not) in AIM or the certificate generation process, messages should be secure enough for most any AIM user. At any rate, it would almost certainly be easier to break into your house and install monitoring equipment, or infect your computer with a worm or trojan that phones home, than to bother mounting a direct attack. However, this also underscores the fact that cryptography is not a security panacea; there are lots of easier alternatives to cracking codes and protocols, and you need to be aware of them too.
The short of it is that your steamy exchanges, inane prattlings, or even treasonous plottings are possibly being read by someone or something out there. There are lots of people who really couldn't care less about this, and those people certainly won't feel any need for encryption. But for those who do...
Note that I've only tried the certificates from Thawte, though the ones from Comodo should work fine too. The sign-up process can be a bit annoying, but that's the price you pay.
This is definitely the option I recommend, not least of all because you won't get any annoying "untrusted certificate" warnings, like you would for the other options I'll mention below (just for the sake of completeness).
$ ./CA.pl -newca
CA certificate filename (or enter to create)
Making CA certificate ...
Generating a 2048 bit RSA private key
.................................+++
................................................................+++
writing new private key to './demoCA/private/cakey.pem'
Enter PEM pass phrase:1234
Verifying - Enter PEM pass phrase:1234
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:.
State or Province Name (full name) [Some-State]:.
Locality Name (eg, city) []:.
Organization Name (eg, company) [Internet Widgits Pty Ltd]:.
Organizational Unit Name (eg, section) []:.
Common Name (eg, YOUR name) []:YourSN
Email Address []:.
$ ./CA.pl -newreq
Generating a 2048 bit RSA private key
.....................................................................+++
..........+++
writing new private key to 'newreq.pem'
Enter PEM pass phrase:1234
Verifying - Enter PEM pass phrase:1234
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:.
State or Province Name (full name) [Some-State]:.
Locality Name (eg, city) []:.
Organization Name (eg, company) [Internet Widgits Pty Ltd]:.
Organizational Unit Name (eg, section) []:.
Common Name (eg, YOUR name) []:YourSN
Email Address []:.
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:.
An optional company name []:.
Request (and private key) is in newreq.pem
$ ./CA.pl -sign
Using configuration from /opt/local/packages/openssl-0.9.7c/ssl/openssl.cnf
Enter pass phrase for ./demoCA/private/cakey.pem:
Check that the request matches the signature
Signature ok
Certificate Details:
Serial Number: 1 (0x1)
Validity
Not Before: Dec 25 11:10:56 2003 GMT
Not After : Dec 24 11:10:56 2004 GMT
Subject:
commonName = YourSN
X509v3 extensions:
X509v3 Basic Constraints:
CA:FALSE
Netscape Comment:
OpenSSL Generated Certificate
X509v3 Subject Key Identifier:
EB:A1:29:7C:AE:82:99:F1:03:A0:53:F6:5D:66:37:05:77:B3:CB:A8
X509v3 Authority Key Identifier:
keyid:92:1E:FF:93:92:BF:3B:FA:65:EC:7A:32:2B:46:04:4E:CE:61:27:FD
DirName:/CN=YourSN
serial:00
Certificate is to be certified until Dec 24 11:10:56 2004 GMT (365 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
Signed certificate is in newcert.pem
$ openssl pkcs12 -in newcert.pem -inkey newreq.pem -out newcert.p12 \
-export -certfile demoCA/cacert.pem -name "YourSN"
Enter pass phrase for newreq.pem:1234
Enter Export Password:1234
Verifying - Enter Export Password:1234
Here, newcert.p12 will be the certificate you import into AIM.