Cómo Instalar Certificado SSL en Apache
Cómo Instalar Certificado SSL en Apache
Cómo Instalar Certificado SSL en Apache
Antes de empezar con el tutorial, ¿no tienes un servidor Cloud Linux con Apache en el
que puedas instalar tu certificado SSL? ¡No te preocupes! Con solo un click, puedes
desplegarlo fácilmente con SW Hosting.
Para instalar un certificado SSL en Apache, necesitaremos los ficheros siguientes:
Certificado (.crt)
Clave privada (.key)
Autoridad de certificación (.ca)
¿Ya los tienes? Empezamos:
1. Copia los tres ficheros en el servidor. En este manual asumimos que has subido
los tres ficheros mediante FTP, pero puedes realizarlo de cualquier otra forma.
2. Conéctate al servidor mediante SSH y accede al directorio en el que alojaremos
los certificados:
cd /etc/apache2/ssl/
3. Crea el directorio correspondiente a tu dominio y accede al mismo:
mkdir minuevaweb.es
cd minuevaweb.es
4. Movemos los certificados en el directorio creado. Suponiendo que los has subido
al directorio 'web' mediante FTP, los moveremos de la siguiente forma:
mv /var/www/minuevaweb.es/datos/web/certificado.crt
/etc/apache2/ssl/minuevaweb.es/
mv /var/www/minuevaweb.es/datos/web/certificado.key
/etc/apache2/ssl/minuevaweb.es/
mv /var/www/minuevaweb.es/datos/web/certificado.ca
/etc/apache2/ssl/minuevaweb.es/
5. Cambiamos el propietario y grupo de los certificados a root:
chown root:root /etc/apache2/ssl/minuevaweb.es/certificado.crt
chown root:root /etc/apache2/ssl/minuevaweb.es/certificado.key
chown root:root /etc/apache2/ssl/minuevaweb.es/certificado.ca
Ya hemos movido los certificados en el directorio correspondiente.
A continuación, procederemos a configurar el bloque VirtualHost en Apache:
1. Accede al directorio de ficheros de configuración vhosts:
cd /etc/apache2/sites-enabled/
2. Edita el fichero de configuración correspondiente a la web en la que estás
instalando el certificado SSL. En este ejemplo utilizamos el editor de
textos nano, pero puedes hacer uso de cualquier otro:
cd /etc/apache2/sites-enabled/
1
3. Hacemos una copia del bloque VirtualHost existente debajo del mismo,
quedando duplicado (luego haremos cambios, no te preocupes):
====================================================
==
<VirtualHost *:80>
ServerName minuevaweb.es
ServerAlias www.minuevaweb.es
DocumentRoot "/var/www/minuevaweb.es/datos/web"
CustomLog /var/www/minuevaweb.es/logs/20190307.log common
ErrorLog /var/www/minuevaweb.es/logs/error_20190307.log
</VirtualHost>
====================================================
====
(el archivo original)
====================================================
==
<VirtualHost *:80>
ServerName minuevaweb.es
ServerAlias www.minuevaweb.es
DocumentRoot "/var/www/minuevaweb.es/datos/web"
CustomLog /var/www/minuevaweb.es/logs/20190307.log common
ErrorLog /var/www/minuevaweb.es/logs/error_20190307.log
</VirtualHost>
<VirtualHost *:80>
ServerName minuevaweb.es
ServerAlias www.minuevaweb.es
DocumentRoot "/var/www/minuevaweb.es/datos/web"
CustomLog /var/www/minuevaweb.es/logs/20190307.log common
ErrorLog /var/www/minuevaweb.es/logs/error_20190307.log
</VirtualHost>
====================================================
=======
(el archivo con la copia original)
4. En el segundo bloque VirtualHost, modificamos el puerto de 80 a
443: <VirtualHost *:443>
2
5. En el segundo bloque VirtualHost, añadimos antes del final las siguientes
líneas con las rutas correspondientes a nuestros certificados:
============================================
...
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/minuevaweb.es/certificado.crt
SSLCertificateKeyFile /etc/apache2/ssl/minuevaweb.es/certificado.key
SSLCACertificateFile /etc/apache2/ssl/minuevaweb.es/certificado.ca
</VirtualHost>
==================================================
6. Quedará de la siguiente forma:
=================================================
<VirtualHost *:80>
ServerName minuevaweb.es
ServerAlias www.minuevaweb.es
DocumentRoot "/var/www/minuevaweb.es/datos/web"
CustomLog /var/www/minuevaweb.es/logs/20190307.log common
ErrorLog /var/www/minuevaweb.es/logs/error_20190307.log
</VirtualHost>
<VirtualHost *:443>
ServerName minuevaweb.es
ServerAlias www.minuevaweb.es
DocumentRoot "/var/www/minuevaweb.es/datos/web"
CustomLog /var/www/minuevaweb.es/logs/20190307.log common
ErrorLog /var/www/minuevaweb.es/logs/error_20190307.log
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/minuevaweb.es/certificado.crt
SSLCertificateKeyFile /etc/apache2/ssl/minuevaweb.es/certificado.key
SSLCACertificateFile /etc/apache2/ssl/minuevaweb.es/certificado.ca
</VirtualHost>
====================================================
====
3
7. Guardamos los cambios realizados. En el editor de textos nano, has de pulsar la
siguiente combinación de teclas: Ctrl + X para guardar y salir Tecla Y para
confirmar que quieres sobrescribir Tecla Enter
8. Comprobamos que la configuración es correcta: apache2ctl -t Ha de
aparecer Syntax OK. Si aparece algún error, repasa los pasos anteriores.
9. Recargamos la configuración de Apache para que se apliquen los
cambios: /etc/init.d/apache2 graceful
¡Listo! Accede a tu web con el prefijo https:// para verificar que funciona
correctamente.
OTRA GUÍA
Pasos iniciales
Si instala el certificado en un servidor en el que no se haya editado la configuración de
Apache, primero permita el HTTPS en el site por defecto y permita las conexiones TLS.
Sin estos dos pasos básicos el protocolo HTTPS no funcionará.
Introduzca en el terminal:
sudo a2enmod ssl
Así se activará el módulo HTTPS.
A continuación, permita el site por defecto para la conexión segura o el Apache
utilizará solamente el site por defecto con el HTTP:
sudo a2ensite default-ssl
Reinicie Apache para que a continuación, funcionen tanto el HTTP como el HTTPS:
systemctl restart apache2
4
Para utilizar el certificado suministrado debe modificar la configuración del host para
el dominio. Abra el archivo de configuración default-ssl.conf (o dominio-ssl.conf) para
editarlo (debería estar en /etc/apache2/sites-enabled; si no es así, vuelva al apartado
Pasos iniciales) y edite la ubicación del archivo de clave privada y del archivo de
certificado que se utilizarán en las dos siguientes directivas:
SSLCertificateFile /etc/ssl/private/linux_cert+ca.pem
SSLCertificateKeyFile /etc/ssl/private/private.key
Las versiones anteriores de Apache soportaban la directiva SSLCertificateChainFile (no
está en uso desde la versión 2.4.8); puede eliminarla o desactivarla. El certificado
intermedio está en el archivo del certificado cómo ya se ha indicado anteriormente. La
directiva SSLCACertificateFile sirve para los certificados de clientes, así que puede
ignorarlo para el certificado TLS.
Guarde el archivo. Puede verificar la configuración correcta antes de reiniciar,
utilizando la orden
sudo apache2ctl configtest
Finalmente, reinicie Apache con
sudo systemctl restart apache2
OTRA GUÍA
Instalar certificado SSL Wildcard en sitio web con Apache2
Una de las formas más importantes de asegurar el intercambio de datos entre un
servidor y el cliente que accede a él es el uso de certificados SSL. Para asegurar que la
comunicación se realiza realmente con el servidor correcto, el servidor puede ser
certificado por una institución de confianza.
Requisitos:
Asegurarse de que el servidor tiene el puerto 443 (https) abierto
Haber adquirido un Certificado SSL en cualquier entidad certificadora oficial
Fichero con la Clave Privada .key
Fichero de Certificado SSL .cer o .crt
5
Fichero de Certificados Intermedios .cer o .crt
Pasos:
1. Subir los ficheros con los certificados al servidor en una carpeta a la que se tenga
acceso, como por ejemplo la home : /home/personal/certificados
2. Crea una carpeta en la ruta /etc/ssl/certs
$ sudo mkdir /etc/ssl/certs/LaSendaDelAdmin
<VirtualHost *:443>
ServerAdmin webmaster@localhost
ServerName lasendadeladmin.com
ServerAlias www.lasendadeladmin.com
SSLEngine on
SSLCertificateFile
/etc/ssl/certs/LaSendaDelAdmin/LaSendaDelAdmin.com_ssl_certificate.cer
SSLCertificateKeyFile
/etc/ssl/certs/LaSendaDelAdmin/*.LaSendaDelAdmin.com_private_key.key
SSLCertificateChainFile
/etc/ssl/certs/CloudGamers/*.LaSendaDelAdmin.com_ssl_certificate_INTERME
DIATE.cer
....
6
7. Si no esta el módulo SSL habilitado, habilitalo con el comando a2enmod ssl :
$ sudo a2enmod ssl