Cacert.org, es una pagina web que nos permite de forma gratuita, darnos de alta y crear certificados de dominio que podemos utilizar para que nuestra página web tenga conexion ssl, y asi utilizar conexiones cifradas usando protocolo https.
Asi nuestros usuarios se sentiran mucho mas seguros. Eso si, al no tratarse de una entidad certificadora de pago, la mayoria de navegadores web, no vienen con cacert.org añadido a su lista de certificadoras oficiales, con lo que nuestros usuarios se deberian descargar la certificadora, e instalarla en sus equipos. Se puede descargar desde aqui: http://www.cacert.org/index.php?id=3
Requisitos:
- Servidor bajo linux
- Acceso a la linea de comandos como root
- Conocimientos sobre la creación y modificación de virtualhost en apache
Vamos alla!! Lo primero es tener un dominio que nos lleve a nuestra página web, completamente accesible desde internet. Nos damos de alta en la pagina web cacert.org, y añadimos un dominio a nuestra lista de dominios de nuestra web. Yo lo he hecho añadiendo el dominio de una pagina que administro que es www.tuherenciadigital.com. (nota: con añadir el dominio tuherenciadigital.com es suficiente, no hacen falta las www)
Nos vamos a nuestro servidor linux, y desde la linea de comandos hacemos lo siguiente:
Vamos a nuestro directorio donde pondremos los certificados
cd /etc/ssl/cacert
nota: si no existe algun directorio, lo creamos
Creamos la peticion de certificado
openssl req -nodes -new -keyout private.key -out server.csr
IMPORTANTE: Cuando nos pregunte el FQDN, le ponemos el nombre completo de la direccion web. Yo en mi caso le puse: www.tuherenciadigital.com
Estando en el mismo directorio, nos descargamos el certificado raiz de cacert, y un certificado intermedio, que ya viene encadenado que podemos coger desde esta web:
http://wiki.cacert.org/SimpleApacheCert?action=AttachFile&do=view&target=CAcert_chain.pem
Con este comando lo descargamos directamente
wget http://wiki.cacert.org/SimpleApacheCert?action=AttachFile&do=get&target=CAcert_chain.pem
Siguiendo en el directorio /etc/ssl/cacert , tendremos 3 archivos:
La clave privada con el que se genero la peticion -> private.key
El archivo de request de certificado -> server.csr
El archivo de la entidad cetificadora raiz -> CAcert_chain.pem
Abrimos el archivo server csr (con el comando nano o cat), y copiamos todo el texto, incluido las dos lineas superior y anterior.
Nos vamos a la web der cacert.org, vamos a «NUEVO» en certificados de servidor, y pegamos el codigo en el campo de texto.
Al darle a enviar, nos genera nuestro certificado de cominio.
Copiamos el codigo generado, y nos vamos a linux. Nos creamos un fichero llamado «certificado.crt», dentro del directorio de linux /etc/ssl/cacert
Ya hemos terminado con la generación de certificados. Vamos a configurar nuestro virtualhost o sitio web.
Para eso, nos vamos a nuestro archivo de sitio:
por ejemplo:
/etc/apache2/sites-enabled/nuestrositio.vhost
En este fichero, tendremos un codigo que empezara por:
<virtualhost *80>
y terminara por
</virtualhost>
En principio, lo mas sencillo, es copiar todo lo que aparece, y pegarlo justo debajo, asi tendremos 2 bloques que empiezan por
<virtualhost *:80>
Vamos al segundo bloque, y cambiamos *:80, por *:443, quedando asi:
<virtualhost *:443>
Dentro de este bloque, añadimos la configuracion SSL, escribiendo lo siguiente:
<IfModule mod_ssl.c>
SSLEngine on
SSLCertificateFile /etc/ssl/cacert/certificado.crt
SSLCertificateKeyFile /etc/ssl/cacert/private.key
SSLCACertificateFile /etc/ssl/cacert/CAcert_chain.pem
</IfModule>
Guardamos todo, y reiniciamos apache con:
service apache2 restart
Y en principio ya esta!! espero que os funcione!
Yo lo he probado en debian7, y esta completamente en funcionamiento.
Un saludo!