Todo el proceso de Instalación de Bludit se hace con http, que no está encriptada la información, si bien mi servidor está al lado de la PC donde estoy haciendo los cambios, esta información viaja por internet y está expuesto a internet, por lo tanto, luego de instalar el sistema y borrar el archivo install.php genero los certificados con el servicio de let´s Encrypt que es un servicio online para poder usar HTTPS y es software libre y gratuito. Hay que tener en cuenta que el certificado vence y hay que renovarlo. Eso lo hago más abajo.
Configurar Bludit para usar HTTPS correctamente. Aquí los pasos completos:
sudo certbot --nginx -d elprofejuan.duckdns.org
Yo tuve que copiar el certificado, por las dudas, ya que no lo hizo de forma automática. No copio, por seguridad la imagen de este paso.
Certbot debería haber modificado tu archivo de configuración de Nginx. De esta forma lo verificamos:
sudo nano /etc/nginx/sites-available/bludit.conf
Se deberían ver algo similar a:
server {
listen 80;
server_name elprofejuan.duckdns.org;
return 301 https://$host$request_uri; # Redirección HTTP→HTTPS
}
server {
listen 443 ssl;
server_name elprofejuan.duckdns.org;
ssl_certificate /etc/letsencrypt/live/elprofejuan.duckdns.org/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/elprofejuan.duckdns.org/privkey.pem;
root /var/www/bludit;
index index.php;
# ... resto de configuración ...
}
sudo nano /etc/nginx/sites-available/bludit.conf
Agregue al inicio:
# Redirección HTTP a HTTPS
server {
listen 80;
server_name elprofejuan.duckdns.org;
return 301 https://$server_name$request_uri;
}
# Servidor HTTPS
server {
listen 443 ssl http2;
server_name elprofejuan.duckdns.org;
ssl_certificate /etc/letsencrypt/live/elprofejuan.duckdns.org/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/elprofejuan.duckdns.org/privkey.pem;
# Configuración SSL recomendada
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384';
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
root /var/www/bludit;
index index.php;
# ... resto de tu configuración actual ...
}
sudo nano /var/www/bludit/bl-config.php
Cambie:
define('PROTOCOL', 'http');
Por:
define('PROTOCOL', 'https');
https://elprofejuan.duckdns.org/admin
https://elprofejuan.duckdns.org
Si tienes contenido existente, actualiza los enlaces HTTP a HTTPS, yo no tenía así que omití esta parte:
sudo find /var/www/bludit/ -type f -exec sed -i 's|http://elprofejuan.duckdns.org|https://elprofejuan.duckdns.org|g' {} +
# Verificar sintaxis
sudo nginx -t
# Recargar configuración
sudo systemctl reload nginx
# Probar acceso
curl -I https://elprofejuan.duckdns.org
https://elprofejuan.duckdns.org
Agrega esto en la configuración de Nginx dentro del bloque server
HTTPS:
# Forzar HTTPS para todos los recursos
add_header Content-Security-Policy "upgrade-insecure-requests";
Certbot se configura automáticamente para renovar, pero puedes verificarlo:
sudo systemctl list-timers | grep certbot
Con estos pasos, Bludit deberían funcionar correctamente con HTTPS. ¡El redireccionamiento de HTTP a HTTPS asegura que siempre se use la conexión segura!
Comenta si tienes alguna sugerencia: a éste, mi correo o en mis redes sociales que están arriba.