Cómo generar, firmar e importar un certificado SSL desde Java [duplicado]

Posible duplicado:
Genere certificados, claves públicas y privadas con Java

Necesito generar certificados autofirmados en tiempo de ejecución, firmarlos e importarlos al almacén de claves Java. Puedo hacer esto usando "keytool" y "openssl" desde la línea de comando de la siguiente manera:

keytool -import -alias root -keystore keystore.txt -file cacert.pem
keytool -genkey -keyalg RSA -keysize 1024 -alias www.cia.gov -keystore keystore.txt
keytool -keystore keystore.txt -certreq -alias www.cia.gov -file req.pem
openssl x509 -req -days 3650 -in req.pem -CA cacert.pem -CAkey cakey.pem -CAcreateserial -out reqsigned.pem 
keytool -import -alias www.cia.gov -keystore keystore.txt -trustcacerts  -file reqsigned.pem

Por supuesto, puedo enviar mi aplicación con keytool y binarios openssl y ejecutar los comandos anteriores desde Java, pero estoy buscando un enfoque más limpio que me permita hacer todo lo anterior usando Java puro.

¿Alguna biblioteca que pueda usar?