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?
1 Answer
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.