Specifically I would like to connect to bitcoind from an outside system but I'm concerned about security. I've seen where others have said that SSL support is built into the Bitcoin client but how do I configure it and what front-ends are SSL-capable? Could I simply connect with PuTTY?
You can not connect with PuTTY as bitcoind only listens to RPC-JSON commands.
Anything that can send over the HTTP(S) protocol is fine. See the JSON-RPC class for PHP.
Assuming that you want bitcoind to accept remote RPC-JSON calls, you would need to setup your
bitcoin.conf file like so:
rpcuser = randomUsername rpcpassword = strongRandomPassword rpcallowip = ipOfAllowedHost rpcssl = 1
Then, navigate to your data directory
.bitcoin and generate a self-signed certificate. Do not enter a password when it prompts you for one.
openssl genrsa -out server.pem 2048 openssl req -new -x509 -nodes -sha1 -days 3650 -key server.pem > server.cert
Restart bitcoind and test the SSL functionality. You should see the certificate details, pressing enter twice will return a
HTTP/1.0 401 Authorization Required.
openssl s_client -connect localhost:8332
That's it, bitcoind will now accept RPC-JSON commands through through HTTPS.