Du kannst problemlos selber ein Zertifikat erstellen; der Hacken an der Sache ist einfach, dass die Browser dieses nicht ohne Warnung akzeptieren, da keine vollständige Chain zu einem Root-Zertifikat (das beim Browser hinterlegt ist) existiert.
Die Übertragung kann trotzdem verschlüsselt erfolgen; allerdings kann man nicht sicher sein, wer tatsächlich am anderen Ende des SSL-Tunnels sitzt (ausser du weisst den Fingerprint deines Zertifikates auswendig)...
Sobald du jedoch ein Zertifikat möchtest, das durch eine Root-Certificate-Firma (VeriSign, Thawte, etc...) "unterzeichnet" wurde, beginnt es zu kosten... teilweise happig....
Erstellen kannst du self-signed Zertifikate mittels dem OpenSSL-Command-Line-Tool.... Google hilft weiter für die genauen Commands...
http://www.openssl.org/