lunes, 7 de diciembre de 2020

Certificados en Java (3). Configurar JBoss Server con https. autentificacion del cliente con certificado.

 1. Introducción

En el fichero server.xml se indica donde localizar los certificados

para encontralo, si se sabe que cuelga de "/opt" se puede probar con este comando

find /opt -name server.xml -print

Y nos salen

/opt/jboss-X.X.X.ZZ/server/all/deploy/jboss-web.deployer/server.xml
/opt/jboss-X.X.X.ZZ/server/default/deploy/jboss-web.deployer/server.xml

Parece ser que el segundo fichero es el correcto.

Miramos el contenido del fichero, y solamente la parte que nos interesa es:

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
               maxThreads="150" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS"
               ciphers="TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256"
               keystoreFile="${jboss.server.home.dir}/conf/myjbosscert.p12" keystorePass="mypassword" keystoreType="PKCS12"
               truststoreFile="${jboss.server.home.dir}/conf/server.truststore" truststorePass="otherpassword" truststoreType="JKS" />

Ahora hay que cambiar myjbosscert.p12 por el nuevo certificado y tener en cuenta la nueva contraseña e indicarlo en el fichero server.xml

OJO: solo se puede activar para que vea los certificados como jks o como PKCS12. Por tanto hay que tener cuidado y leerse la documentación para no terner problemas, y ver que está activado el APR para utilizar certificados ".p12" (PKCS12) 


2. Pero y si tenemos un certificado en formato crt?

Para ello tenemos que convertirlo a p12 y para ello hacemos

openssl pkcs12 -export -in myjbosscert.crt -inkey myjboss.key -out myjbosscert.p12 -name myjboss -CAfile myCA.pem -caname root -chain

Donde myjboss.key es la clave que hemos creado para el servidor

y myCA.pem es el certificado X509 de la entidad certificadora.

Lo que hacemos es que añadimos la cadena de certificados al almacén PKCS12


NO ES OBLIGADO e incluso puede ser recomendable en ciertos casos no utilizar las opciones 

   -name myjboss    ni tampoco

   -caname root 

Y nos pedirá una contraseña.

NOTA: Al convertir un certificado de X509 v3 (con datos adicionales como los diversos SAN o "nombre-maquina+dominio" alternativos), parece que se pierde parte de esta información adicional. Si queremos ver el certificado resultante y sabiendo la contraseña que nos pide anteriormente podemos hacer:


openssl pkcs12 -nokeys -info -in ximodante.p12 -passin pass:mypassword

OJO: este comando no muestra las SAN o DNS alternativos!!, pero si instalamos este certificado en un Tomcat y accedemos a este servidor desde Firefox y le decimos que muestre el certrificado de servidor, SI QUE NOS MUESTRA LOS SAN!!!!!

3. Apuntes de José María del Ayuntamiento de Mula

 1. En el servidor de la SEDE tenéis que modificar el nombre del certificado y pass en el server.xml de 

/opt/jboss-4.2.3.GA/server/default/deploy/jboss-web.deployer/server.xml

2. En Backoffice para el SELLO es en keystore.properties de la ruta 

/opt/jboss-4.2.3.GA/server/default/conf/keystore.properties



 



No hay comentarios :

Publicar un comentario