ESC

Start typing to search across invoices, services, domains, tickets, and more...

Search... Ctrl+K
aaPanel / BaoTa

Cómo crear un sitio en aaPanel con SSL gratis de Let's Encrypt

5 pasos 13 min de lectura 6 vistas 0
Contenido

Una vez instalado aaPanel (BaoTa), el siguiente paso suele ser crear un sitio web y habilitar HTTPS. Tomando como ejemplo una pila Nginx, esta guía muestra cómo añadir un sitio en aaPanel, apuntar su dominio, subir los archivos del sitio, emitir con un clic un certificado SSL gratuito de Let's Encrypt y forzar HTTPS. Los pasos son casi idénticos en la edición china de BaoTa y funcionan en servidores con Debian/Ubuntu o CentOS/Rocky/AlmaLinux.

Antes de empezar, instale en el panel un servidor web (Nginx o Apache) y PHP, además de MySQL si necesita una base de datos, y asegúrese de que los puertos 80 y 443 estén abiertos en el firewall del sistema.

Paso 1: Apunte su dominio a la IP del servidor

En su registrador o proveedor de DNS, añada un registro A para el dominio raíz y otro para www que apunten a la dirección IPv4 pública del servidor (añada registros AAAA si usa IPv6). Los cambios de DNS tardan desde unos minutos hasta unas horas en propagarse. Compruébelos con:

dig +short example.com A
dig +short www.example.com A
nslookup example.com

Si no tiene dig, instálelo con apt install -y dnsutils en Debian / Ubuntu o yum install -y bind-utils en CentOS / Rocky / AlmaLinux. Espere hasta que la IP devuelta coincida con la de su servidor; de lo contrario, la validación SSL fallará.

Si el dominio pasa por el proxy de una CDN (por ejemplo, la «nube naranja»), la validación HTTP por archivo puede fallar. Cambie el registro a solo DNS mientras emite el certificado, o use la validación por DNS.

Paso 2: Añada un sitio web en aaPanel

Inicie sesión en el panel, abra "Website" en el menú de la izquierda y haga clic en "Add site":

  • Dominio: uno por línea, por ejemplo example.com y www.example.com;
  • Directorio raíz: por defecto es /www/wwwroot/example.com; normalmente puede mantenerlo;
  • Base de datos: cree una base de datos MySQL si su aplicación (por ejemplo, WordPress) la necesita, y anote el nombre de la base de datos, el usuario y la contraseña;
  • Versión de PHP: elija la que requiera su aplicación, o "Static" para un sitio solo HTML.

El panel genera automáticamente la configuración del sitio en Nginx. Al visitar http://example.com debería ver la página predeterminada del panel que indica que el sitio se creó correctamente. También puede comprobarlo desde el servidor:

curl -I http://example.com

Paso 3: Suba los archivos de su sitio web

Use el menú "Files" del panel para abrir la raíz del sitio, suba su archivo comprimido y descomprímalo con clic derecho, o súbalo por SFTP. Después ajuste el propietario y los permisos para evitar errores de permisos:

chown -R www:www /www/wwwroot/example.com
find /www/wwwroot/example.com -type d -exec chmod 755 {} \;
find /www/wwwroot/example.com -type f -exec chmod 644 {} \;

No olvide eliminar el index.html predeterminado generado por el panel; de lo contrario, puede seguir mostrándose en lugar de su sitio.

Paso 4: Emita un certificado SSL gratuito de Let's Encrypt

En la lista de Website, haga clic en "Conf" (o en el nombre del sitio) de su sitio, abra la pestaña "SSL" y elija "Let's Encrypt":

  • Elija "File verification" si el dominio resuelve correctamente y el puerto 80 es accesible; si usa una CDN o el puerto 80 no está disponible, elija "DNS verification" y añada el registro TXT que se muestra;
  • Marque los dominios que desea incluir (raíz y www);
  • Haga clic en "Apply" y espere unos segundos; el certificado se implementa automáticamente en el sitio.

Los certificados de Let's Encrypt son válidos durante 90 días, y el panel los renueva automáticamente mediante una tarea programada. Compruebe las fechas del certificado con:

echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | openssl x509 -noout -issuer -dates

Paso 5: Fuerce HTTPS

Una vez implementado el certificado, active "Force HTTPS" en la pestaña SSL para que todas las solicitudes HTTP se redirijan con un 301 a HTTPS. El panel añade una regla como la siguiente al bloque server de Nginx del sitio; si edita la configuración a mano, puede añadirla usted mismo:

if ($server_port !~ 443){
    rewrite ^(/.*)$ https://$host$1 permanent;
}

Verifique la redirección:

curl -I http://example.com

Si obtiene un 301 Moved Permanently con una cabecera Location que apunta a https, funciona correctamente. Si su aplicación (por ejemplo, WordPress) todavía guarda una URL del sitio con http, actualícela a https para evitar advertencias de contenido mixto.

Preguntas frecuentes

Falló la validación de Let's Encrypt. ¿Qué debo revisar?

Confirme que el dominio resuelve a este servidor, que el puerto 80 está abierto en el firewall, que ninguna regla ni protección contra hotlinking bloquea /.well-known/ y que no hay un proxy de CDN delante. Como alternativa, cambie a la validación por DNS.

Después de forzar HTTPS aparece «demasiadas redirecciones» (too many redirects).

Suele ocurrir cuando el modo SSL de la CDN es "Flexible", de modo que se comunica con su servidor por HTTP. Configure el modo SSL de la CDN como "Full", o desactive temporalmente Force HTTPS mientras resuelve el problema.

El certificado no se renovó automáticamente.

Compruebe en "Cron" que la tarea de renovación existe y se ejecuta correctamente, y si el DNS o el puerto 80 cambiaron antes del vencimiento. También puede renovarlo manualmente desde la pestaña SSL.

Si todavía necesita ayuda, envíe un ticket al soporte técnico 24/7 de IMIDC con su dominio y el mensaje de error.

¿Fue útil la respuesta?

Tutoriales relacionados