|

Let’s Encrypt ,DNS-01 Challenge, OVH API y WordOps

En la era digital, la seguridad en la web es esencial, y los certificados SSL/TLS juegan un papel crucial en la protección de la información transmitida entre un servidor web y sus usuarios. Let’s Encrypt es una autoridad de certificación (CA) gratuita y automatizada que facilita la obtención de estos certificados.

Para validar la propiedad de un dominio y emitir un certificado SSL, Let’s Encrypt utiliza dos métodos principales:

  1. HTTP-01 Challenge: Este método verifica la propiedad del dominio al solicitar que se cree un archivo específico en el servidor web. Let’s Encrypt accede a este archivo a través de una URL pública (http://tudominio.com/.well-known/acme-challenge/) para confirmar que tienes control sobre el dominio.
  2. DNS-01 Challenge: En este método, debes crear un registro TXT específico en el DNS del dominio. Let’s Encrypt verifica este registro para confirmar tu control sobre el dominio. Es especialmente útil para dominios wildcard (*.dominio.com) y cuando no es posible utilizar el método HTTP-01.

A continuación, te mostraré cómo configurar un certificado SSL con Let’s Encrypt usando el DNS-01 Challenge en OVH, WordOps, y aplicarlo en un sitio WordPres

Si prefieres automatizar la creación del registro TXT para el DNS-01 Challenge utilizando la API de OVH, a continuación te detallo cómo hacerlo paso a paso.

Requisitos Previos

  1. Cuenta en OVH: Debes tener una cuenta activa en OVH y acceso al dominio que deseas configurar.
  2. Credenciales de la API de OVH: Necesitarás una aplicación configurada en OVH para obtener las credenciales API (Application Key, Application Secret y Consumer Key).

Paso 1: Obtener las Credenciales de la API

  1. Accede al portal de OVH API:
    • Dirígete a OVH API e inicia sesión con tu cuenta de OVH. Mas Informacion : Acme -OVh
  2. Crea una nueva aplicación:
    • Rellena Application Name y Aplication description. Deja la validez ilimitada. Los permisos son los que aparecen en la imagen.(GET,PUT,POST,DELETE)
  3. Crea la API KEY
    • Guarda Aplication Key , Aplication secret y Consumer Key.

Para generar un certificado SSL utilizando el DNS-01 Challenge con WordOps, que a su vez utiliza acme.sh (un cliente de ACME) para interactuar con Let’s Encrypt, debes seguir estos pasos:

Paso 1: Configurar las Credenciales de la API de OVH en acme.sh

Antes de generar el certificado, necesitas configurar acme.sh para que pueda interactuar con la API de OVH y agregar automáticamente los registros TXT necesarios para el desafío DNS-01.

  1. Exporta las credenciales de la API de OVH:Debes asegurarte de que las credenciales de la API de OVH estén disponibles en tu entorno. Esto se hace configurando las variables de entorno en tu terminal
  2. Añade estas líneas a tu archivo ~/.bashrc o ~/.zshrc si quieres que estén disponibles automáticamente cada vez que inicies una nueva sesión de terminal.
export OVH_AK="TU_APPLICATION_KEY"
export OVH_AS="TU_APPLICATION_SECRET"
export OVH_CK="TU_CONSUMER_KEY"
export OVH_ENDPOINT="ovh-eu"  # Cambia si es necesario ('ovh-us', 'ovh-ca', etc.)

Paso 2: Generar el Certificado SSL con WordOps

Ahora que acme.sh está configurado para trabajar con OVH, puedes generar un certificado SSL usando WordOps. Más Info.

  1. Crear o configurar un sitio en WordOps:Si aún no has creado el sitio en WordOps, puedes hacerlo con el siguiente comando.
  2. Generar el Certificado SSL utilizando el DNS-01 Challenge:Utiliza el siguiente comando para emitir el certificado SSL. Este comando le indica a WordOps que use acme.sh con el método dns para OVH:
    • --le: Indica que quieres obtener un certificado SSL de Let’s Encrypt.
    • --dns=dns_ovh: Indica que quieres usar el DNS-01 Challenge con el plugin dns_ovh de acme.sh para agregar los registros TXT.
wo site create midominio.com --wp --letsencrypt=wildcard --dns=dns_ovh --php83
ACTUALIZAR CERTIFICADO 
wo site update midominio.com --letsencrypt=renew --dns=dns_ovh 
SINO DEJA ACTUALIZAR
wo site update midominio.com --letsencrypt=clean

Paso 3: Verificación y Aplicación del Certificado

Después de ejecutar el comando anterior, WordOps y acme.sh se encargarán de:

  1. Agregar automáticamente los registros TXT necesarios en el DNS de OVH.
  2. Verificar que el desafío DNS-01 sea satisfactorio.
  3. Emitir y aplicar el certificado SSL a tu sitio WordPress.

Paso 4: Verificar la Instalación

Una vez que el proceso haya terminado, visita tu sitio web para asegurarte de que el certificado SSL está activo y que la conexión es segura (deberías ver el candado en la barra de direcciones del navegador).

También puedes verificar el estado del certificado y la configuración SSL ejecutando:

wo site info midominio.com

Renovación Automática

acme.sh y WordOps manejan automáticamente la renovación del certificado SSL, por lo que no necesitas preocuparte por hacerlo manualmente.

Publicaciones Similares

  • | | |

    Multisite con Apache2 Virtual Hosts en Ubuntu 14.04

    Tenemos una web creada en WordPress y necesitamos crear un subdomio para crear otra instancia de WordPress diferente. Una forma de realizarlo es mediante los Virtual Host de Apache. El dominio principal es «juancarlos.es» y vamos a crear un subdominio nuevo «tienda.juancarlos.es». Crearemos una carpeta especifica para el subdominio y después podremos instalar sobre esa…

  • |

    Contenedores Docker

    El repositorio de contenedores para descargar esta en https://hub.docker.com Cada repositorio tiene diferentes contenedores.Cada contenedor se etiqueta(tag) para poder diferenciarlos. Para descargar Ubuntu 14.04 $ sudo docker pull ubuntu:trusty trusty: Pulling from library/ubuntu 324d088ce065: Pull complete 2ab951b6c615: Pull complete 9b01635313e2: Pull complete 04510b914a6c: Pull complete 83ab617df7b4: Pull complete Digest: sha256:b8855dc848e2622653ab557d1ce2f4c34218a9380cceaa51ced85c5f3c8eb201 Status: Downloaded newer image for…

  • |

    Red en Docker

    Mapeo de puertos  en docker  puerto host:puerto docker $ sudo docker run -d –name nginx2 -p 8080:80 nginx $sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES cb10b610eef0 nginx «nginx -g ‘daemon of…» 51 seconds ago Up 50 seconds 0.0.0.0:8080->80/tcp nginx2 Mapea un puerto aleatorio del host $ sudo docker run -d -P…

  • |

    Introducción a Docker y su evolución

    Introducción a Docker y su evolución 🐳 ¿Qué es Docker? Docker es una plataforma de software que permite a los desarrolladores crear, probar y desplegar aplicaciones dentro de contenedores. Estos contenedores son entornos ligeros y autocontenidos, diseñados para ser portables entre sistemas operativos y entornos de infraestructura, independientemente de las diferencias entre estos. ¿Por qué…

  • Instalar Docker CE en Ubuntu 16.04

    Vamos a instalar la última versión estable de Docker desde los repositorios oficiales. Empecezamos actualizando el sistema operativo. $ sudo apt-get update && sudo apt-get upgrade Descargamos la clave GPG $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add – Añadimos el repositorio de docker $ sudo add-apt-repository «deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable» Actualizamos $…

  • | |

    WordPress Error upload_max_filesize en Ubuntu 14.04

    Por defecto el tamaño máximo de un archivo que se puede subir en WordPress es de 2 Mb. Esta limitación viene por parte de la versión de PHP para Apache2. 1. Localizar php.ini Método 1. Podemos crear un fichero info.php dentro del directorio raiz de la pagina web en esto caso /var/www/html user@Server:/var/www/html$ sudo nano info.php…