I am trying to connect to a webservice over ssl with a client certificate. Is there an elegant way of doing this apart from shoving things like \"javax.net.ssl.keyStore\" in
You could just install the cert into the system keystore. (Location varies across platforms, and you will need admin rights).
Not sure if this is fully relevant, but still. This entry describes the way of generating the certificate and installing it on a local system without using the keytool. Probably you could reuse some parts of the (very simple) source code.
See example code in my article. It shows how to dynamically provide the custom keystore to the HTTPS server as for the WS client. http://jakubneubauer.wordpress.com/2011/09/06/java-webservice-over-ssl/
you might get some samples from the website for this book : http://www.manning.com/kanneganti/