OdooWiki OCA HUB
Tools Licencia: AGPL-3

Este módulo se escribió para que su instalación de Odoo solicite certificados SSL a https://letsencrypt.org automáticamente.

Traducción automática al español (DeepSeek) de la descripción original de OCA, que está en inglés.

auto_awesome Qué hace este módulo

Generado por IA a partir del código · Odoo 16.0

Solicita y renueva automáticamente certificados SSL gratuitos de Let's Encrypt para tu sitio web de Odoo, de modo que los visitantes obtengan una conexión HTTPS segura sin necesidad de gestionar los certificados manualmente.

Este módulo añade una sección "Let's Encrypt" a los Ajustes Generales de Odoo donde enumeras los nombres de dominio que debe cubrir el certificado, estableces un comando para recargar tu servidor web después de guardar un nuevo certificado y, opcionalmente, configuras la validación basada en DNS.

  • Una tarea programada diaria comprueba el certificado existente y lo renueva cuando falta, ha caducado, caduca en menos de 30 días o cuando añades nuevos nombres de dominio.
  • Puedes optar por usar el servidor de pruebas de Let's Encrypt, que tiene límites de tasa más altos pero emite certificados que los navegadores no confían.
  • Para certificados comodín (dominios que empiezan por *.) o cuando tu instancia de Odoo no es accesible públicamente, puedes preferir la validación DNS y proporcionar un script de shell que cree el registro TXT de DNS requerido; el script recibe el dominio y el valor del desafío como variables de entorno.
  • El módulo valida tu lista de dominios: se rechazan las direcciones IP y los dominios locales como localhost, y solo se permite un comodín al principio de un dominio.
  • Sirve el archivo de desafío HTTP a través de la URL pública /.well-known/acme-challenge/ y puede ejecutar un comando de recarga del servidor después de guardar el certificado.

Modifica la pantalla de ajustes (res.config.settings) y almacena sus opciones como parámetros de configuración. El certificado y las claves de la cuenta se guardan en el directorio de datos de Odoo.

Depende de

base
Modelos y campos (2)
  • letsencrypt · modelo nuevo
  • res.config.settings · amplía un modelo existenteletsencrypt_altnames (Domain names), letsencrypt_prefer_dns (Prefer DNS validation), letsencrypt_dns_provider (DNS provider), letsencrypt_testing_mode (Use testing server), letsencrypt_reload_command (Server reload command), letsencrypt_dns_shell_script (DNS update script), letsencrypt_needs_dns_provider

Texto generado por IA (DeepSeek) al leer el código de la versión 16.0 en GitHub; puede contener errores, así que verifícalo en el código antes de decidir. Ver el código en GitHub

Disponibilidad por versión

Revisado: 2026-11-03
Confirmado (verificado en repositorio y rama) Estimado (sin verificar) Sin información

Estado de confirmación: 5 confirmadas, 4 sin información de 9 versiones.

Fuentes · Odoo 16.0

Confirmado el 2026-11-03 en la rama 16.0 de OCA/server-tools.

terminal Instalación y uso

Documentación de OCA · Odoo 16.0

Tras la instalación, este módulo genera automáticamente una clave privada para tu cuenta en letsencrypt.org en $data_dir/letsencrypt/account.key. Si quieres o necesitas usar la clave de tu propia cuenta, sustituye el archivo.

Para que las solicitudes de certificado funcionen, tu sitio debe ser accesible mediante HTTP simple; consulta más abajo ejemplos de configuración en caso de que fuerces a tus clientes a la versión SSL.

Tras la instalación, activa el cronjob Update letsencrypt certificates y observa los mensajes en tu registro.

Este addons solicita un certificado para el dominio nombrado en el parámetro de configuración web.base.url - si esto devuelve localhost o similar, el módulo no solicita nada.

Otras configuraciones que se explican por sí mismas están en Settings -> General Settings. Allí puede añadir más dominios al CSR, añadir un script personalizado que actualice su DNS y añadir un script que se utilizará para recargar su servidor web (si es necesario). El número de dominios que se pueden añadir a un certificado está limitado a 100. Se puede utilizar un certificado comodín para evitar ese límite.

Tenga en cuenta que todos esos dominios deben ser accesibles públicamente en el puerto 80 vía HTTP, y deben tener una entrada para .well-known/acme-challenge que apunte a $datadir/letsencrypt/acme-challenge de su instancia de odoo.

Dado que los cambios de DNS pueden tardar algún tiempo en propagarse, cuando respondemos a un desafío DNS y el servidor intenta comprobar nuestra respuesta, puede fallar (y probablemente lo hará). La solución a esto está documentada en https://tools.ietf.org/html/rfc8555#section-8.2 y básicamente es una cabecera Retry-After bajo la cual podemos indicar al servidor que reintente el desafío. En el momento en que se escribieron estas líneas, Boulder no había implementado esta funcionalidad. Esto nos llevó a utilizar el parámetro de configuración letsencrypt.backoff, que es la cantidad de minutos que este módulo intentará consultar el servidor para reintentar la validación de la respuesta a nuestro desafío, específicamente es el parámetro deadline de poll_and_finalize.

El módulo configura un cronjob que solicita y renueva los certificados automáticamente.

Los certificados se renuevan un mes antes de que caduquen. A partir de entonces, se intenta la renovación cada día hasta que se consigue.

Tras la primera ejecución, encontrarás un archivo llamado domain.crt en $datadir/letsencrypt; configura tu proxy SSL para que use este archivo como certificado.

Configuración en profundidad

If you want to use multiple domains on your CSR then you have to configure them
from Settings -> General Settings. If you use a wildcard in any of those domains
then letsencrypt will return a DNS challenge. In order for that challenge to be
answered you will need to **either** provide a script (as seen in General Settings)
or install a module that provides support for your DNS provider. In that module
you will need to create a function in the letsencrypt model with the name
``_respond_challenge_dns_$DNS_PROVIDER`` where ``$DNS_PROVIDER`` is the name of your
provider and can be any string with length greater than zero, and add the name
of your DNS provider in the settings dns_provider selection field.

In any case if a script path is inserted in the settings page, it will be run
in case you want to update multiple DNS servers.

A reload command can be set in the Settings as well in case you need to reload
your web server. This by default is ``sudo /usr/sbin/service nginx reload``


You'll also need a matching sudo configuration, like::

    your_odoo_user ALL = NOPASSWD: /usr/sbin/service nginx reload

Further, if you force users to https, you'll need something like for nginx::

    if ($scheme = "http") {
        set $redirect_https 1;
    }
    if ($request_uri ~ ^/.well-known/acme-challenge/) {
        set $redirect_https 0;
    }
    if ($redirect_https) {
        rewrite ^   https://$server_name$request_uri? permanent;
    }

and this for apache::

    RewriteEngine On
    RewriteCond %{HTTPS} !=on
    RewriteCond %{REQUEST_URI} "!^/.well-known/"
    RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]

In case you need to redirect other nginx sites to your Odoo instance, declare
an upstream for your odoo instance and do something like::

    location /.well-known {
        proxy_pass    http://yourodooupstream;
    }

If you're using a multi-database installation (with or without dbfilter option)
where /web/databse/selector returns a list of more than one database, then
you need to add ``letsencrypt`` addon to wide load addons list
(by default, only ``web`` addon), setting ``--load`` option.
For example, ``--load=web,letsencrypt``

Traducción automática al español (DeepSeek) de la documentación original de OCA; los comandos y el código no se traducen.

info

Datos importados de GitHub: esta ficha refleja la última revisión del catálogo, no una consulta en directo. Verifica siempre en la documentación del módulo y en staging antes de instalar en producción.