El disponer de un certificado de seguridad es útil, porque permite como mínimo cifrar todas las comunicaciones que se produzcan entre tu servidor, y un cliente cualquiera; si ademas nos permite autentificarnos, muchísimo mejor….
En este primer paso, vamos a crear un certificado de seguridad firmado por nosotros, lo que ya nos servirá para cifrar las comunicaciones.
Todas las imágenes que aparecen, están hechas sobre un Debian Wheezy, aunque no debería dar problema el hacer lo mismo en otra distribución.
Lo primero de todo, será crear una estructura de directorios para guardar nuestras claves, para eso abrimos un terminal como root:
# mkdir /CA
# cd /CA
# mkdir newcerts private certs csr keys
# echo ’01’ >serial
# touch index.txt
# chmod 700 /CA
Con eso, hemos creado una estructura de directorios, a la que solo tiene acceso root, y sera en donde crearemos y guardaremos nuestros certificados.
El siguiente paso, es crear el fichero de configuración de OpenSSL; como existe una muestra en /etc/ssl, la copiamos a nuestro directorio
# cp /etc/ssl/openssl.cnf /CA
El siguiente paso, sera modificarlo según nuestras necesidades. A continuación indico las lineas a modificar o añadir:
[ CA_default ]
dir = /CA
#crlnumber = $dir/crlnumber
default_md = sha1[ req_distinguished_name ]
countryName_default = ES #Dos letras de vuestro código de pais
stateOrProvinceName_default = Vuestra provincia————-
localityName_default =Vuestra localidad
0.organizationName_default = Vuestra empresaorganizationalUnitName_default = Publicaciones
emailAddress_default = direccion de email[ v3_req ]
basicConstraints = CA:FALSE
subjectKeyIdentifier = hash
distinguished_name = req_distinguished_name
req_extensions = v3_req[ v3_ca ]
authorityKeyIdentifier=keyid:always,issuer:always
Una vez guardado, podeis generarlo con
:/CA# openssl req -new -x509 -extensions v3_ca -keyout private/cakey.pem -out cacert.pem -days 7300 -config ./openssl.cnf
y os volverá a preguntar vuestros datos, pero si antes ya los habéis escrito correctamente, al darle «Enter», los tomara como defecto. También os pedirá una contraseña que seria conveniente que fuera fuerte.
Con eso, conseguís un certificado autofirmado, de nuestra Autoridad Certificadora. Se crearan dos ficheros:
- private/cakey.pem Clave privada del certificado de CA
- cacert.pem Clave publica de nuestro CA
El siguiente paso es generar el certificado para nuestro servidor, para ello utilizamos el comando
:/CA# openssl req -new -nodes -out csr/www.internetdoor.es-startssl-req-`date +%FT%T`.pem -keyout keys/www.internetdoor.es-startssl-key-`date +%FT%T`.pem -config ./openssl.cnf
Se os volverá a solicitar vuestros datos, pero como en el caso anterior, si los habéis dejado bien configurados, bastará con que vayáis aceptándolo con «Enter»
Los ficheros obtenidos estarán en
- csr/www.internetdoor.es-startssl….pem que sera la petición de certificado
- keys/www.internetdoor.es-startssl….pem que será la clave privada correspondiente
Nuestra entidad certificadora esta lista para empezar a firmar certificados, y en el siguiente articulo os indicamos como podéis firmar un certificado para ser utilizado en vuestra web o solicita un certificado gratuito