Bien, para poder continuar con este proceso vas a necesitar:
* OpenSSL
* ModSSL
Sino lo tienes, puedes descargarlo con el gestor de paquetes de tu distribucion linux. En caso que uses Centos o algun derivado de RedHat, la forma mas simple de instalar el mod_ssl es:
yum -y install mod_ssl
Esto te creara el siguiente archivo:
/etc/httpd/conf.d/ssl.conf
El cual no hay que toquetear ni editar.
Ahora, vas a realizar todo el procedimiento como el usuario root. Lo primero que debes hacer es crear el directorio donde vas a almacenar los certificados SSL. Por motivos de seguridad, solo root debe tener accesibilidad a dicho directorio:
mkdir -m 0700 /etc/sslx
Si tienes directorios virtuales en Apache, te sugiero que si vas a utilizar SSL en ellos tengas una direccion IP publica para cada directorio, ya que por politicas de SSL y TLS estos, no es posible utilizar los mismos certificados SSL en distintos directorios virtuales usando la misma IP.
Ahora, vas a crear un directorio para almacenar los certificados SSL para tu sitio web, y nuevamente aplicaremos la misma tematica de seguridad, solo root debe tener accesibilidad:
mkdir -m 0700 /etc/sslx/tudominio.com
Accede al directorio que acabas de crear:
cd /etc/sslx/tudominio.com
Una vez alli, crearas otro directorio base que servira como el lugar de trabajo:
mkdir -m 0755 /CA
cd CA
GENERANDO CLAVE Y CERTIFICADO
Bien, ahora tenemos que copiar el archivo de configuracion por defecto que usa openssl, al nuevo directorio creado /CA. Busca en tu distribucion linux el archivo openssl.cnf, en mi distribucion basada en Debian lo encontre en /etc/ssl/openssl.cnf, por lo que procedi con el copiado:
# cp /etc/ssl/openssl.cnf /etc/sslx/tudominio.com/CA
# chmod 0600 /etc/sslx/tudominio.com/CA/openssl.cnf
Luego tienes que crear los archivos que van a funcionar como bases de datos para el openssl:
# touch /CA/index.txt
# echo '01' > /CA/serial
Ahora si, ya es hora de crear el certificado autofirmado, el cual sera utilizado para firmar pedidos de certificados. # cd /CA
# openssl req -config openssl.cnf -new -x509 -extensions v3_ca -keyout ca.key -out certs
Este comando crea un certificado válido por 5 años, se debe ingresar una contraseña para la clave privada. Aunque si utilizas este certificado, cada vez que vayan a reiniciar el servidor web Apache, sera necesario la introduccion de la password del certificado, de lo contrario el servidor Apache no arrancara, puedes evitarte esto creando un certificado sin Triple DES, el cual te permita iniciar Apache de forma normal sin interaccion de passwords.
Asi que vamos al directorio:
cd /etc/sslx/tudominio.com
openssl rsa -in server.key -out server.pem
Opcionalmente, puedes generar un certificado CSR (Certificate Signing Request) el cual
se envia a una autoridad de certificados validada como Verisign, GoDaddy,etc. Quienes tras
el correspondiente pago, te reenvian un certificado server.crt firmado por dicha autoridad.
Sino se desea poseer un certificado firmado por una autoridad reconocida, puedes perfectamente crear uno propio que sea autofirmado. El unico inconveniente o molestia que esto genera, es que cada vez que un usuario ingrese por navegador a tu website, saldra un mensaje de advertencia alegando que el certificado SSL no esta firmado, y el usuario debera agregar una excepcion en la configuracion del navegador para saltarse este aviso.Continuando con el tema, para generar un certificado autofirmado, valido por 730 dias ejecuta el siguiente comando:
openssl x509 -req -days 730 -in server.csr -signkey server.key -out server.crt
Recuerda que solo root debe poder acceder a los certificados:
chmod 400 /etc/sslx/tudominio.com/server.*
Ya finalizado todo lo anterior, posees tus llaves de certificados SSL disponible.CONFIGURACION EN APACHE
Lo primero que vas a realizar es habilitar el puerto SSL dentro de la configuracion de Apache buscando el archivo de configuracion httpd.conf:
NameVirtualHost *:80
Listen 80
<IfModule mod_ssl.c>
# SSL name based virtual hosts are not yet supported, therefore no
# NameVirtualHost statement here
Listen 443
</IfModule>
Vas a descomentar en caso que este comentada, la linea que dice Listen 443. Luego dentro del mismo documento httpd.conf busca las siguientes lineas, descomentalas en caso que esten comentadas y edita las rutas de ubicacion de los certificados SSL acorde a tu configuracion: SSLEngine on
SSLCertificateFile /etc/sslx/tudominio.com/server.crt
SSLCertificateKeyFile /etc/sslx/tudominio.com/server.pem
No hay comentarios:
Publicar un comentario