http://www.ibm.com/developerworks/lotus/library/ls-SSL_clien...
Really, though, unless you're extremely security-conscious, a hidden URL over HTTPS with a good password is sufficient for your purposes.
Also, don't serve any pages over plain HTTP, login pages even less so.
openssl req -new -x509 -nodes \
-out /nuxeo/certs/server.crt \
-keyout /nuxeo/certs/server.key \
-batch
you will get a warning about the certificate being suspect; but at least the traffic will be encryptedHeroku will still probably charge you a basic fee for enabling SSL, since each certificate requires a dedicated (non-shared) IP address... at least until SNI support becomes more commonplace.
Edit: Just to reiterate what others have said, this is a server-side certificate, which is primarily used for encryption. You'll also want to generate a client-side certificate for authentication purposes. That's something you'd do entirely on your own, no need to go through a third-party CA for that.
Unfortunately I have no idea how this would work on Heroku.
There's a great article about client authentication for HAProxy (might be interesting even if you're not using HAProxy): http://blog.exceliance.fr/2012/10/03/ssl-client-certificate-...