A self-signed certificate is an identity certificate that is signed by its own creator, rather than paying a certified third-party to sign it.
Instructions adapted from http://www.tc.umn.edu/~brams006/selfsign.html.
Rather than paying for an SSL certificate from a signing authority, we'll use a self-signed certificate to provide encryption in Apache. The client's web browser will prompt them to whether the certificate should be accepted or not - if that is going to be a problem, then you'll need to get a certificate from a recognized signing authority.
Create a directory, readable only by root to hold our working files:
mkdir ~/cert
chmod 600 ~/cert
cd ~/cert