Como configurar un certificado SSL en Apache 2 en Ubuntu

El tener un dominio cifrado y utilizar el protocolo https es ya una característica que te ayuda al posicionamiento o SEO, para hacerlo necesitas un certificado SSL y aquí puedes ver como configurar certificado SSL en Apache 2 con Ubuntu Server 18.04, pero que puedes utilizar en otras distros.

Como configurar un certificado SSL en Apache 2 en Ubuntu

Lo primero que tienes que hecer es adquirir tu certificado con algún proveedor como GoDaddy o Let’s Encrypt. Una vez que cuentas con el, lo que tienes que hacer es descargar el certificado y cargarlo en tu servidor.

Suponiendo que tienes ya listos los 3 archivos necesarios: el archivo del certificado .cfg, el archivo de la llave de cifrado key.txt y el archivo del conjunto de certificados intermedios o bundle file con extención .cfg, debes cargarlo a tu servidor.

En el caso de Ubuntu Server puedes cargar los archivos a la carpeta del usuario sudoer y luego moverlo a directorio /etc/ssl. Asumiendo que los archivos estén en directorio Descargas puedes ver estos comandos de ejemplo y adecuarlos a tus archivos y a tu servidor.

cd ~/Descarga
scp bf56aacb4a5b7f9b.crt usuario@midominio.com:/home/usuario
scp gd_bundle-g2-g1.crt usuario@midominio.com:/home/usuario
scp key.txt usuario@midominio.com:/home/usuario

Una ves que están en tu servidor, debes moverlos al directoio /etc/ssl

sudo mv *.crt /etc/ssl
sudo mv key.txt /etc/ssl

Una vez que se encuentran en la ruta adecuada tienes que modificar el archivo de configuración del dominio acd l que se va a asignar el certificado

sudo nano /etc/apache2/sites-enabled/midominio.conf

En este archivo se debe tener previamente configurado la sección para el subdominio o dominio virtual para escuchar por el puerto 443 y agregar el siguiente código:

SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL

SSLCertificateFile /etc/ssl/bf56aacb4a5b7f9b.crt  
SSLCertificateKeyFile /etc/ssl/key.txt
SSLCertificateChainFile /etc/ssl/gd_bundle-g2-g1.crt

Para que quede algo parecido a esto:

<VirtualHost *:443>
ServerName midominio.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/ruta_del_dominio

SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL

SSLCertificateFile /etc/ssl/bf56aacb4a5b7f9b.crt
SSLCertificateKeyFile /etc/ssl/key.txt
SSLCertificateChainFile /etc/ssl/gd_bundle-g2-g1.crt

<Directory /var/www/ruta_del_dominio>
Options -Indexes +FollowSymLinks
AllowOverride All
</Directory>

LogLevel warn

ErrorLog ${APACHE_LOG_DIR}/midominio.com.error.log
CustomLog ${APACHE_LOG_DIR}/midominio.com.access.log combined

<FilesMatch \.php$>
# Apache 2.4.10+ can proxy to unix socket
SetHandler "proxy:unix:/var/run/php/php7.2-fpm.sock|fcgi://localhost/"
</FilesMatch>

</VirtualHost>

Una vez que se ha agregado el código se debe reiniciar el servicio apache2

sudo systemctl restart apache2.service 

Una vez reiniciado, debe eliminar el cache de tu navegador y probar tu dominio con el protocolo https y se debe mostrar como seguro en el navegador. Este es un ejemplo de un dominio con el servicio https configurado.

This entry was posted in Software Libre. Bookmark the permalink.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *


*