bg-tutorials

Cómo instalar un certificado SSL de ACME en Plesk

Si gestionas sitios web en Plesk, ya no hay razón para manejar los certificados manualmente. Con la configuración adecuada, puedes automatizar la emisión, renovación e instalación de certificados SSL utilizando el protocolo ACME con External Account Binding (EAB).

Plesk ACME SSL

Esta guía te muestra exactamente cómo instalar un certificado SSL de ACME en Plesk (basado en Linux) utilizando ACME.sh, un cliente ACME ligero que funciona sin problemas con Plesk.

Si estás en un alojamiento compartido, es posible que no puedas utilizar este método. La mayoría de los entornos compartidos no permiten el acceso root ni los scripts personalizados. Esta guía funciona para servidores VPS y dedicados en los que tú controlas la pila de alojamiento.


Antes de empezar

Asegúrate de tener preparado lo siguiente antes de saltar a los pasos:

  • Un servidor o VPS con Plesk Obsidian
  • Acceso SSH al servidor. Ya sea root o un usuario con privilegios sudo
  • Un dominio activo que apunte al servidor mediante un registro A o AAAA
  • Puerto 80 abierto y accesible públicamente (necesario para la validación HTTP-01)
  • Tus credenciales EAB del proveedor SSL (EAB KID y EAB HMAC Key)

Puntos finales ACME a utilizar:

  • Sectigo: https://acme.sectigo.com/v2/DV
  • DigiCert: https://acme.digicert.com/v2/acme

Paso 1: Comprueba la raíz del documento de tu sitio web en Plesk

Necesitarás la ruta a la carpeta raíz de tu sitio para que ACME.sh pueda colocar correctamente los archivos de validación.

  1. Iniciar sesión en Plesk
  2. Ir a Sitios web y dominios > yourdomain.com > Configuración de alojamiento
  3. Copia el valor raíz del Documento. Su aspecto es el siguiente /var/www/vhosts/tudominio.com/httpdocs
  4. Ten a mano esta ruta, la utilizarás en pasos posteriores.

Paso 2: Habilitar el acceso SSH (si es necesario)

Si tu plan de alojamiento no tiene habilitado SSH:

  1. Ir a Sitios web y dominios > yourdomain.com > Acceso a alojamiento web
  2. En Acceso al servidor a través de SSH, elige /bin/bash o /usr/bin/bash
  3. Guardar la configuración

Si estás en un host gestionado/compartido, ponte en contacto con soporte para solicitar acceso SSH.


Paso 3: Conéctate a tu servidor mediante SSH

Desde tu terminal local, conéctate al servidor:

ssh [email protected]

O, si utilizas un usuario no root:

ssh [email protected]

Paso 4: Instalar ACME.sh

Ejecuta el instalador oficial:

curl https://get.acme.sh | sh
source ~/.bashrc

Luego comprueba la versión para confirmar que está instalada:

acme.sh --version

Si falla, asegúrate de que curl y git están instalados. Puedes volver a ejecutar la instalación con --force si es necesario.


Paso 5: Registra tu cuenta en la EAB

El registro ACME es una configuración única que vincula tu servidor a la autoridad de certificación, de modo que las futuras solicitudes de certificados puedan validarse y procesarse automáticamente.

Este comando registra tu cuenta ACME con tu proveedor de SSL(Sectigo o DigiCert) utilizando tus credenciales únicas EAB.

acme.sh --register-account \
  --server https://acme.sectigo.com/v2/DV \
  --eab-kid YOUR_EAB_KID \
  --eab-hmac-key YOUR_EAB_HMAC_KEY \
  --accountemail [email protected]

He aquí lo que significa cada parte:

  • acme.sh --register-account – Inicia el registro de la cuenta ACME
  • --server – La URL ACME de tu proveedor (Sectigo o DigiCert)
  • --eab-kid – Tu EAB Key ID del proveedor
  • --eab-hmac-key – Tu clave secreta EAB HMAC (cadena larga)
  • --accountemail – Tu correo electrónico de contacto para la cuenta ACME

Este comando debe personalizarse con tus datos reales de EAB y tu dirección de correo electrónico. No lo copies tal cual.

Si dejas los marcadores de posición como YOUR_EAB_KID, el comando fallará con un error de autenticación.

Una vez que se ejecute correctamente, tu servidor estará autorizado a solicitar certificados SSL a ese proveedor; no tendrás que volver a registrarte en el futuro, a menos que cambies de proveedor o de credenciales.


Paso 6: Prepárate para la validación HTTP

Crea el directorio de retos ACME:

mkdir -p /var/www/vhosts/yourdomain.com/httpdocs/.well-known/acme-challenge

Luego comprueba que funciona:

echo "ok" > /var/www/vhosts/yourdomain.com/httpdocs/.well-known/acme-challenge/testfile
curl -I http://yourdomain.com/.well-known/acme-challenge/testfile

Deberías ver HTTP/1.1 200 OK. Si no es así, comprueba las reglas del cortafuegos, el acceso al puerto 80 o la ruta raíz del documento.


Paso 7: Anular HTTPS Forzado para ACME Path

Si tu sitio redirige todo el tráfico a HTTPS, eso romperá la validación HTTP-01 a menos que permitas que la carpeta de desafío la eluda.

Si utilizas Apache (por defecto en Plesk Linux)

Edita tu archivo .htaccess en la raíz del documento y añade esto al principio:

RewriteEngine On
RewriteRule ^.well-known/acme-challenge/ - [L]
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Si utilizas Nginx (o Nginx está frente a Apache)

El .htaccess de Apache no te ayudará en este caso porque Nginx se encarga primero de la redirección. En su lugar, tienes que añadir una directiva personalizada de Nginx en Plesk:

  1. Ve a Sitios web y dominios > tudominio.com > Configuración de Apache y Nginx
  2. Busca el campo Directivas Nginx adicionales
  3. Pega esto:
location ^~ /.well-known/acme-challenge/ {
root /var/www/vhosts/yourdomain.com/httpdocs;
allow all;
try_files $uri =404;
}

Esto le dice a Nginx que sirva la ruta del reto directamente, sin redirecciones HTTPS ni proxies a Apache. Guarda y aplica los cambios.


Paso 8: Emitir el Certificado

Ahora puedes solicitar el certificado. Aquí tienes un ejemplo con Sectigo y dos variaciones de dominio:

acme.sh --issue \
  -d yourdomain.com \
  -d www.yourdomain.com \
  -w /var/www/vhosts/yourdomain.com/httpdocs \
  --server https://acme.sectigo.com/v2/DV

Puedes incluir tantas banderas -d como necesites. Una vez emitido el certificado, ACME.sh lo guarda todo en esta carpeta: /root/.acme.sh/tudominio.com/

Los dos archivos que necesitarás para Plesk son:

  • tudominio.com.key: es tu clave privada
  • fullchain.cer: es tu archivo de certificado, e incluye la cadena completa (tu cert + cadena CA)

Estos son los archivos que subirás o utilizarás en el CLI para instalar el cert en Plesk.


Paso 9: Importar el Certificado a Plesk a través de la IU

  1. Ir a Sitios web y dominios > tudominio.com > Certificados SSL/TLS
  2. Haz clic en Añadir certificado SSL/TLS
  3. Sube el certificado (selecciona cadenacompleta.cer) y la clave privada (selecciona tudominio.com.key). Haga clic en Guardar
  4. Vuelve a Configuración del alojamiento y selecciona este certificado en la sección Soporte SSL/TLS
  5. Pulsa OK o Aplicar

Tu dominio utiliza ahora el certificado SSL de terceros de ACME.


Paso 10: Automatizar la importación mediante CLI de Plesk (Opcional, ideal para Cron)

Para automatizar la solicitud de cert en futuras renovaciones, utiliza la CLI:

plesk bin certificate -c "acme-yourdomain" \
  -domain yourdomain.com \
  -cert-file /root/.acme.sh/yourdomain.com/fullchain.cer \
  -key-file  /root/.acme.sh/yourdomain.com/yourdomain.com.key

plesk bin domain -u yourdomain.com -ssl true -certificate-name "acme-yourdomain"
plesk bin httpdmng --reconfigure-domain yourdomain.com

Si no se reconoce el comando plesk, prueba con la ruta completa: /usr/sbin/plesk bin …


Paso 11: Automatizar las renovaciones con el script de despliegue

ACME.sh renueva automáticamente los certificados ~30 días antes de su caducidad. Pero conectaremos un gancho post-renovación para aplicarlos a Plesk automáticamente.

1. Crea el script de despliegue

nano /usr/local/bin/plesk-acme-deploy.sh

Pega lo siguiente:

#!/usr/bin/env bash
set -euo pipefail

DOMAIN="yourdomain.com"
CERT_DIR="/root/.acme.sh/${DOMAIN}"
CERT_NAME="acme-${DOMAIN}"

CERT_FILE="${CERT_DIR}/fullchain.cer"
KEY_FILE="${CERT_DIR}/${DOMAIN}.key"

/usr/sbin/plesk bin certificate -c "${CERT_NAME}" \
  -domain "${DOMAIN}" \
  -cert-file "${CERT_FILE}" \
  -key-file  "${KEY_FILE}"

/usr/sbin/plesk bin domain -u "${DOMAIN}" -ssl true -certificate-name "${CERT_NAME}"
/usr/sbin/plesk bin httpdmng --reconfigure-domain "${DOMAIN}"

echo "Plesk deploy complete for ${DOMAIN}"

2. Guárdalo y hazlo ejecutable

chmod +x /usr/local/bin/plesk-acme-deploy.sh

3. Enlázalo a ACME.sh

acme.sh --install-cert -d yourdomain.com \
  --key-file       ~/.acme.sh/yourdomain.com/yourdomain.com.key \
  --fullchain-file ~/.acme.sh/yourdomain.com/fullchain.cer \
  --reloadcmd "/usr/local/bin/plesk-acme-deploy.sh"

A partir de ahora, cada renovación se aplicará a Plesk.


Paso 12: Pruébalo todo

Visita tu sitio en https://yourdomain.com. El certificado debe ser válido y mostrar tu CA.

Para probar la renovación y el despliegue, ejecuta manualmente

acme.sh --renew -d yourdomain.com --force

Luego sigue el registro:

tail -n 60 ~/.acme.sh/acme.sh.log

Deberías ver una renovación correcta y «Plesk deploy complete» al final.


Problemas comunes y resolución de problemas

Incluso con la configuración correcta, las cosas no siempre salen bien al primer intento, especialmente con la validación de dominios, las redirecciones o las rutas de archivos. A continuación te indicamos los problemas más comunes que puedes encontrarte al emitir o renovar tu certificado, y cómo solucionarlos rápidamente.

La validación HTTP falla (404, tiempo de espera o archivo de prueba no encontrado)

Esto significa que el archivo de impugnación ACME no se está sirviendo correctamente.

  • Vuelve a comprobar la raíz del documento en Plesk > Configuración de alojamiento.
  • Asegúrate de que el puerto 80 está abierto y no está bloqueado por tu cortafuegos, panel de alojamiento o proveedor de la nube.
  • Si tienes una redirección a HTTPS, asegúrate de que se excluye /.well-known/acme-challenge/ como se ha mostrado anteriormente.

«No autorizado» o «respuesta no válida» durante la emisión

El servidor ACME no ha podido verificar tu reto, probablemente debido a una de las siguientes causas:

  • Los registros DNS de tu dominio aún no se han actualizado (falta el registro A o AAAA o aún se está propagando).
  • No se pudo acceder al archivo de prueba, se eliminó demasiado pronto o fue bloqueado por una regla.
  • Estás utilizando una CDN o WAF (como Cloudflare) que intercepta el tráfico HTTP. Pausa temporalmente el proxy o pon en la lista blanca la ruta ACME.

No pasa nada después de la renovación

El certificado se renueva, pero no se aplica en Plesk.

Asegúrate de que la ruta de tu script de despliegue es correcta en el comando –reloadcmd.

Comprueba que el script es ejecutable ejecutándolo:

chmod +x /usr/local/bin/plesk-acme-deploy.sh

Mira dentro del registro ACME con:

tail -n 60 ~/.acme.sh/acme.sh.log

Ahí aparecerán los errores.

Falla la importación CLI de Plesk

Tu script de despliegue puede ejecutarse, pero el cert no se aplica.

  • Si no se encuentra el comando plesk, prueba a utilizar la ruta completa: /usr/sbin/plesk
  • Comprueba que los archivos.key y .cer existen realmente y tienen los nombres correctos.
  • Para forzar una reconfiguración manualmente, ejecuta
plesk bin httpdmng --reconfigure-domain yourdomain.com

Wrods finales

Ya tienes una configuración SSL limpia y totalmente automatizada en tu servidor Plesk. A partir de este momento, tu certificado se renovará automáticamente en segundo plano, y el script actualizará Plesk inmediatamente cada vez que emitas un nuevo certificado. Has tomado el control total del ciclo de vida de tu certificado y te has hecho la vida mucho más fácil.

Ahorre un 10% en certificados SSL al realizar su pedido hoy mismo.

Emisión rápida, cifrado potente, 99,99% de confianza del navegador, asistencia dedicada y garantía de devolución del dinero en 25 días. Código del cupón: SAVE10

Una imagen detallada de un dragón en vuelo
Escrito por

Redactor de contenidos experimentado especializado en Certificados SSL. Transformar temas complejos de ciberseguridad en contenido claro y atractivo. Contribuir a mejorar la seguridad digital a través de narrativas impactantes.