Certificados SSL

Existe amplia documentación sobre encriptación y concretamente sobre SSL, un sistema de encriptación con clave publica y privada.

Como el paquete openSSL ya lo tenemos instalado a partir de los pasos anteriores, debemos crear los certificados que usaremos en nuestro servidor web.

Supongamos que guardamos el certificado en /etc/apache2/ssl/gosa.pem

#>FILE=/ect/apache2/ssl/gosa.pem
#>export RANDFILE=/dev/random
#>openssl req -new -x509 -nodes -out $FILE -keyout /etc/apache2/ssl/apache.pem
#>chmod 600 $FILE
#>ln -sf $FILE /etc/apache2/ssl/`/usr/bin/openssl x509 -noout -hash < $FILE`.0

Con esto hemos creado un certificado que nos permite el acceso SSL a nuestras páginas.

Si lo que queremos es una configuración que nos permita no solo que el tráfico esté encriptado, sino que además el cliente garantice que es un usuario válido, debemos provocar que el servidor pida una certificación de cliente.

En este caso seguiremos un procedimiento mas largo, primero la creación de una certificación de CA:

#>CAFILE=/ect/apache2/ssl/gosa.ca
#>KEY=/etc/apache2/ssl/gosa.key
#>REQFILE=/etc/apache2/ssl/gosa.req
#>CERTFILE=/ect/apache2/ssl/gosa.cert
#>DAYS=365
#>export RANDFILE=/dev/random
#>openssl req -x509 -keyout $CAKEY -out $CAFILE $DAYS

Después de varias cuestiones tendremos una CA, ahora hacemos un requerimiento a la CA creada:

#>openssl req -new -keyout $REQFILE -out $REQFILE $DAYS

Firmamos el nuevo certificado:

#>openssl ca -policy policy_anything -out $CERFILE -infiles $REQFILE

Y creamos un pkcs12 para configurar la certificación en los clientes:

#>openssl pkcs12 -export -inkey $KEY -in $CERTFILE -out certificado_cliente.pkcs12

Este certificado se puede instalar en el cliente, y en el servidor web mediante la configuración explicada en el siguiente punto, nos dará la seguridad de que solo accederán aquellos clientes que nosotros deseamos y que su comunicación será estrictamente confidencial.

aescanero AT gmail.com