Los certificados SSl son un área muy importante dentro de nuestro servidor web muchas veces podemos nosotros mismos generar los certificados y auto firmarlos pero aparecerá un mensaje de advertencia a los usuarios ya que nosotros no somos una CA (Autoridad Certificadora) reconocida es por esto que se deben comprar un certificado digital firmado por una CA.

Preparar el sistema

Para realizar cualquier petición o generar certificados se nesesita openssl, para instalarlo

apt-get install openssl 

Configurar apache con https

Hacer que el módulo ssl esté activo :

   a2enmod ssl

Verificar que apache esté configurado para escuchar en el puerto 443, archivo /etc/apache2/ports.conf

<IfModule mod_ssl.c>
    Listen 443
</IfModule>

Finalmente, para cada dominio virtual, asumiendo que el certificado está en /etc/apache2/apache.pem asegurar que en cada dominio virtual se encuentran las líneas:

        SSLEngine on
        SSLCertificateFile /etc/apache2/apache.pem

El certificado antes mencionado, atuofirmado con una vigencia de un año se puede generar con:

openssl req $@ -new -x509 -days 365 -nodes -out /etc/apache2/apache.pem -keyout /etc/apache2/apache.pem

Generar un certificado auto firmado

Para generar un certificado primero se debe tener una Autoridad Certificadora para esto el paquete openssl ofrece el soporte; se ubica en la carpeta en la que se desea tener toda la información, en este caso /tmp/ y se prosigue a crearla colocando todos los datos solicitados.

orion:~$ cd /tmp/
orion:/tmp$ /usr/lib/ssl/misc/CA.sh -newca

Al tener nuestra Autoridad ya creada proseguimos a generar una petición de certificado el cual se realiza con:

orion:/tmp$ /usr/lib/ssl/misc/CA.sh -newreq

esto generará dos archivos uno es la llave privada (newkey.pem) y el otro la solicitud del certificado (newreq.pem). la llave privada tiene como encabezado dentro del archivo BEGIN RSA PRIVATE KEY y la solicitud del certificado BEGIN CERTIFICATE REQUEST

Al tener la llave privada y la solicitud firmamos la solicitud y generamos el certificado:

orion:/tmp$ /usr/lib/ssl/misc/CA.sh -sign

y generará un archivo el cual es newcert.pem con el certificado firmado por la Autoridad certificadora.

Comprar un certificado

Se puede comprar certificados por las autoridades certificadoras reconocidas para ello se debe tener una llave privada y la solicitud de certificado esto permitirá realizar la compra satisfactoriamente, para generarlos se realiza lo siguiente:

orion:$ openssl genrsa -des3 2048 >rsa.key
orion:$ openssl req -new -key rsa.key > req.csr

tendremos en este caso rsa.key la llave privado y req.csr la solicitud del certificado, luego seguimos los pasos para comprar el certificado vía internet donde solicitarán la solicitud CSR la cual fue generada con anterioridad y luego tenemos nuestro certificado firmado por una CA reconocida.

Nota: Existen certificados wildcard los cuales permiten firmar todos los subdominios de un lugar son un poco mas costosos y se generan como *.domain.net o *.slec.net

Certificado autofirmado para apache2

 mkdir /etc/apache2/ssl; /usr/sbin/make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem

Se configura apache2 para escuchar en el puerto 443 y se le indica que el certificado se encuentra en /etc/apache2/ssl/apache.pem

        SSLEngine on
        SSLCertificateFile /etc/apache2/ssl/apache.pem
        SSLCACertificatePath /etc/apache2/ssl

En las líneas del dominio virtual.

Anualmente puede cambiarse para evitar los mensajes en los navegadores de un certificado expirado.

Lugares para comprar Certificados

Referencias


CategoriaDebian CategoriaProgramas CategoriaAyudas CategoriaSsl

HowtoCertificadoSSL (last edited 2010-03-20 12:49:24 by IgorTamara)