Es importante que ciertas comunicaciones estén cifradas, para ello vamos a generar un certificado y lo vamos a verificar con la entidad certificadora startssl que nos permite validar certificados SSL. También podríamos hacer este paso sin validarlo en startssl, pero luego nos saldría cuando navegamos en el servidor que el certificado no es válido, pero la navegación sería segura igualmente.
Lo primero es generar los ficheros de certificado, el .csr, el .key y el .crt en nuestro servidor. Vamos a generar las claves para admin.sip.polaris.capa8.cat.
Verificaremos que tenemos instalado el paquete openssl, si no es así, lo instalamos:
root@polaris-pbx:~# apt-get install openssl
Nos iremos al directorio /etc/ssl/private y ahí generamos las claves
root@polaris-pbx:/etc/ssl/private# openssl req -nodes -newkey rsa:2048 -keyout admin.sip.polaris.capa8.cat.key -out admin.sip.polaris.capa8.cat.csr Generating a 2048 bit RSA private key ...............................+++ ......................+++ writing new private key to 'admin.sip.polaris.capa8.cat.key' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]:ES State or Province Name (full name) [Some-State]:Barcelona Locality Name (eg, city) []:Barcelona Organization Name (eg, company) [Internet Widgits Pty Ltd]:Unificacion Tecnologica de Servicios, S.L. Organizational Unit Name (eg, section) []:Capa8 Common Name (e.g. server FQDN or YOUR name) []:capa8.cat Email Address []:info@capa8.cat Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []:
Ahora tenemos el .csr y el .key y con ellos vamos a generar el .crt
root@polaris-pbx:/etc/ssl/private# openssl x509 -req -in admin.sip.polaris.capa8.cat.csr -signkey admin.sip.polaris.capa8.cat.key -out admin.sip.polaris.capa8.cat.crt Signature ok subject=/C=ES/ST=Barcelona/L=Barcelona/O=Unificacion Tecnologica de Servicios, S.L./OU=Capa8/CN=capa8.cat/emailAddress=info@capa8.cat Getting Private key
Una vez creados, vamos a la web startssl e introducimos nuestro csr en la web. Tenemos 2 opciones, o crear un certificado para trabajar en la web o usar el modo express lane. La recomendable es que si vas a crear varios certificados es que te crees un certificado de la web y trabajes con él, porque sino te va a estar pidiendo los datos cada vez que vayas a crear un certificado. Si es la primera vez haz sign-up, si ha has entrado otras veces, usa la otra opción.
Una vez entramos nos pide si queremos salir o ir al panel de control. Vamos al panel de control y nos pide el dominio por el cual queremos validar el certificado. En este ejemplo voy a poner capa8.cat (sin los subdominios) y le doy a continue.
Escogemos el mail de verificación que hemos definido en nuestro certificado contra la página startssl y nos manda a nuestro correo una clave identificativa que la ponemos en el siguiente formulario. Le damos a continue.
Nos da otro mensajito identificativo y le damos a continue.
En el siguiente paso nos dice de crear el fichero .csr, pero como ya lo hemos creado le decimos skip. La ventaja de esto es que creando el .csr en nuestro equipo podemos generar el certificado sin password, así que cada vez que reiniciamos apache no nos va a pedir el password, si lo hacemos desde la web, nos obliga a poner un password!
Le damos a skip y copiamos el contenido de nuestro fichero .csr (certificate request) en el formulario y le damos a continue y nos dice que todo ok (si hemos seguido este manual al pie de la letra!)
A continuación, vamos a indicarle el subdominio que estamos creando:
admin.sip.polaris.capa8.cat
Y listos! :)
Ahora vamos a configurar apache2
Si ya tenemos un virtualhost funcionando simplemente vamos a cambiar algunas cosas:
<IfModule mod_ssl.c>
<VirtualHost *:443>
Activamos el modulo ssl y definimos que el puerto de trabajo va a ser el 443 (https) en lugar del 80 (http).
SSLEngine on SSLCertificateFile /etc/ssl/private/admin.sip.polaris.capa8.cat.crt SSLCertificateKeyFile /etc/ssl/private/admin.sip.polaris.capa8.cat.key SSLCertificateChainFile /etc/ssl/certs/sub.class1.server.ca.pem
Aquí le indicamos los certificados que hemos generado, el fichero sub.class1.server.ca.pem nos lo descargamos.
root@polaris-pbx:/etc/apache2/sites-enabled# cd /etc/ssl/certs root@polaris-pbx:/etc/ssl/certs# wget http://www.startssl.com/certs/sub.class1.server.ca.pem
Y ahora finalmente reiniciamos apache. Es probable que si aún no has trabajado con ssl en tu servidor apache, tengas que activar el módulo ssl
root@polaris-pbx:/etc/ssl/certs# a2enmod ssl root@polaris-pbx:/etc/ssl/certs# service apache2 restart
Y ahora accedemos por https a nuestro subdominio y vemos que podemos acceder por ssl y que el certificado que hemos generado tiene nuestros datos.
Ignasi FS liked this on Facebook.
RT @Blackhold_: Blog] Generar certificados válidos startssl en apache: Es importante que ciertas comunicaciones estén cifradas, p… http:/…
RT @Blackhold_: Blog] Generar certificados válidos startssl en apache: Es importante que ciertas comunicaciones estén cifradas, p… http:/…
Pingback: Proxy apache con https | Blackhold