Vamos a crear un certificado autofirmado para incluirlo en un JBoss 7.
Lo primero, crear el certificado de la CA, la clave privada del certificado
openssl genrsa -des3 -out server.key 2048
Después generamos la solicitud de firma del certificado
openssl req -new -key server.key -out server.csr
Nos pide un cerro de datos, nos interesa la parte
Common Name (eg, your name or your server's hostname) []:
Ahí ponemos el FQDN del servidor.
Vamos a quitar la clave de la clave privada, eso nos quita problemas a la hora de ponerlo en el JBoss.
cp server.key server.key.org openssl rsa -in server.key.org -out server.key
Ahora firmamos el certificado con la clave privada
openssl x509 -req -sha256 -days 365 -in server.csr -signkey server.key -out server.crt
Ojo con el sha256, si no lo ponemos le casca un SHA1 y el chrome no lo acepta.
Ya tenemos la primera parte lista. Ahora a por el JBoss. A partir de la 7 el ssl tiene una coña, y es que no va con ficheros normales, sino con keystores. El siguiente problema es el keytool, que no importa claves privadas. Para cargarlos, tenemos que generar un almacén de claves en PKCS12, y luego importar este almacen en el keytool.
openssl pkcs12 -export -in server.crt -inkey server.key -out server.p12 -name test5
Nos pedirá una password, es importante rellenarla para el siguiente paso. Si no podemos nada, dará un error al importar:
keytool error: java.security.UnrecoverableKeyException: Get Key failed: / by zero
Ahora importamos el p12 en un keytool, para que coja la clave privada del servidor:
keytool -importkeystore -destkeystore foo.keystore -srckeystore server.p12 -srcstoretype PKCS12
Nos pedirá la password para el keystore (dos veces si es nuevo), y la password del PKCS. Con esto ya tenemos el certificado del servidor y la clave privada en el keystore:
keytool -list -keystore foo.keystore -alias test5 -v Alias name: test5 Creation date: Oct 5, 2016 Entry type: PrivateKeyEntry Certificate chain length: 1 Certificate[1]: Owner: EMAILADDRESS=no, CN=[Server]....
Ahora a montarlo en JBoss