23

Sep

Publicado por: Eric Cobos Sanchez | Certificates | keystore | Play framework | ssl certificados

Play! Framework SSL con certificados existentes

Poner un servidor de Play! bajo SSL es una tarea bastante sencilla en principio, pero todo cambia cuando nos salimos del ejemplo que nos encontramos en la mayoría de tutoriales, es decir, si creamos un keystore desde cero y añadimos los parámetros al lanzar la aplicación.

1.- Creando el keystore

Haciendo una breve investigación en Google encontré una multitud de tutoriales sobre como crear un keystore desde cero, pero prácticamente nada sobre como hacerlo una vez has adquirido el certificado, situación más común de lo que parece, ya que normalmente las empresas compran sus certificados.

En este caso, teníamos los certificados comprados. Por tanto, no podemos generar un keystore directamente con el comando de Java, sino que debemos generarlo con OpenSSL.

El primer paso será concatenar nuestra clave privada, myprivatekey.key (generalmente la tenemos en un archivo .key) con nuestro certificado mydomainbundle.pem (si queremos que los navegadores lo reconozcan, ya sabéis que debéis tener un archivo con el certificado de nuestro dominio y los intermedios de la entidad certificadora concatenados).

cat myprivatekey.key mydomainbundle.pem > fullbundledcert.pem.txt

Una vez tenemos el certificado concatenado, ejecutamos el siguiente comando:

 openssl pkcs12 -export -in fullbundledcert.pem.txt -out fullbundledcertkeystore.pkcs12 -name mydomain -noiter -nomaciter

Os solicitará introducir una contraseña para el keystore, necesaria para que play pueda arrancar con nuestro certificado.

2.- Añadiendo el keystore a Play! Framework

Ahora que ya tenemos generado nuestro keystore, lo único que nos queda por hacer es añadir los parámetros necesarios cuando lanzamos nuestra aplicación para que esta arranque con nuestro certificado.

activator run -Dhttp.port=9000 -Dhttps.port=9443 -Dhttps.keyStoreType=PKCS12 -Dhttps.keyStore=/path/to/keystore/fullbundledcertkeystore.pkcs12 -Dhttps.keyStorePassword=vuestro_password

Bueno, espero que os haya sido útil y que no tengáis más problemas cuando configuréis vuestra aplicación Play! para ir con SSL.

 

Barcelona
Passeig Gaiolà 13
+34 933 801 144
Lleida
Carrer Agustins 7
+34 973 988 222
Andorra
(Escaldes-Engordany)
Parc de la Mola 10, AD700
Bogota
Carrera 9A #99-07 Piso 9. Despacho 02
Torre la Equidad