> ## Documentation Index
> Fetch the complete documentation index at: https://ayakaleaf-pro.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Proxy TLS

Un proxy TLS opcional para terminar las conexiones HTTPS, usando NGINX.

Ejecuta `bin/init --tls` para inicializar la configuración local con la configuración del proxy NGINX, o para añadir la configuración del proxy NGINX a una configuración local existente. Se crea una clave privada **de ejemplo** en `config/nginx/certs/overleaf_key.pem` y un certificado **ficticio** en `config/nginx/certs/overleaf_certificate.pem`. Sustitúyelos por tu clave privada y tu certificado reales, o establece los valores de las variables `TLS_PRIVATE_KEY_PATH` y `TLS_CERTIFICATE_PATH` con las rutas de tu clave privada y tu certificado reales, respectivamente.

Se proporciona una configuración predeterminada de NGINX en `config/nginx/nginx.conf`, que puede personalizarse según tus necesidades. La ruta al archivo de configuración puede cambiarse con la variable `NGINX_CONFIG_PATH`.

<Check>
  Si tienes un despliegue basado en **docker-compose.yml**, o gestionas tu propio proxy inverso NGINX, puedes ver un archivo **nginx.conf** de ejemplo [aquí](https://github.com/overleaf/toolkit/blob/master/lib/config-seed/nginx.conf).
</Check>

Añade la siguiente sección a tu archivo `config/overleaf.rc` si aún no está:

```text theme={null}
# TLS proxy configuration (optional)
NGINX_ENABLED=false
NGINX_CONFIG_PATH=config/nginx/nginx.conf
NGINX_HTTP_PORT=80

# Replace these IP addresses with the external IP address of your host
NGINX_HTTP_LISTEN_IP=127.0.1.1 
NGINX_TLS_LISTEN_IP=127.0.1.1
TLS_PRIVATE_KEY_PATH=config/nginx/certs/overleaf_key.pem
TLS_CERTIFICATE_PATH=config/nginx/certs/overleaf_certificate.pem
TLS_PORT=443
```

<Danger>
  Si usas un proxy TLS externo (es decir, no gestionado por el Overleaf Toolkit), asegúrate de que `OVERLEAF_TRUSTED_PROXY_IPS=loopback,<ip-of-your-tls-proxy>` esté configurado en tu `config/variables.env`, por ejemplo `OVERLEAF_TRUSTED_PROXY_IPS=loopback,192.168.13.37`.
</Danger>

<Danger>
  Si usas una subred de `172.16.0.0/12` (la subred predeterminada de las redes de Docker) para tu red local, tendrás que establecer `OVERLEAF_TRUSTED_PROXY_IPS=loopback,<network>` en tu `config/variables.env`, donde `<network>` es el valor de `IPAM -> Config -> Subnet` en `docker inspect overleaf_default`, por ejemplo `OVERLEAF_TRUSTED_PROXY_IPS=loopback,172.19.0.0/16`. Esto sirve para evitar la suplantación de las cabeceras `X-Forwarded`.
</Danger>

<Info>
  Si `OVERLEAF_TRUSTED_PROXY_IPS` no se establece manualmente, su valor predeterminado es `loopback`. Si lo estableces manualmente, debes asegurarte de incluir `loopback` (o `127.0.0.1`), que confía en la instancia de **nginx** que se ejecuta dentro del contenedor **sharelatex**. Solo se aceptan direcciones IP y rangos CIDR: no añadas nombres de host como `localhost`; de lo contrario, Overleaf no se iniciará y devolverá `502 Bad Gateway`.
</Info>

Si has configurado correctamente las IP de proxy de confianza, deberías ver tu dirección IP pública en la página `/user/sessions`, así:

<Frame>
  <img src="https://mintcdn.com/ayakaleaf-pro/GmaXa-Cu4QQRFT4C/images/on-premises/qq_1786353887353.png?fit=max&auto=format&n=GmaXa-Cu4QQRFT4C&q=85&s=1715f102584061f4b002fe0a3638167f" alt="" width="375" data-path="images/on-premises/qq_1786353887353.png" />
</Frame>

Si la dirección IP mostrada sigue siendo algo como `127.0.0.1` o una dirección IP de red privada/local, revisa tu configuración de proxy de confianza, especialmente el valor de `OVERLEAF_TRUSTED_PROXY_IPS`.

Para ejecutar el proxy, cambia el valor de la variable `NGINX_ENABLED` en `config/overleaf.rc` de `false` a `true` y vuelve a ejecutar `bin/up`.

De forma predeterminada, la interfaz web HTTPS estará disponible en `https://127.0.1.1:443`. Las conexiones a `http://127.0.1.1:80` se redirigirán a `https://127.0.1.1:443`. Para cambiar la dirección IP en la que escucha NGINX, establece las variables `NGINX_HTTP_LISTEN_IP` y `NGINX_TLS_LISTEN_IP`. Los puertos pueden cambiarse mediante las variables `NGINX_HTTP_PORT` y `TLS_PORT`.

Si NGINX no se inicia y muestra el mensaje de error `Error starting userland proxy: listen tcp4 ... bind: address already in use`, asegúrate de que `OVERLEAF_LISTEN_IP:OVERLEAF_PORT` no se solape con `NGINX_HTTP_LISTEN_IP:NGINX_HTTP_PORT`.

```mermaid theme={null}
sequenceDiagram
participant user as Usuario
participant external as Host externo
participant internal as Host interno
participant nginx as nginx
participant sharelatex as sharelatex
participant git-bridge as git-bridge
%% El usuario se conecta al host externo por HTTP
user->>+ external: HTTP
note over external: NGINX_HTTP_LISTEN_IP:NGINX_HTTP_PORT
external->>+ nginx: HTTP
note over nginx: nginx:80
nginx-->>-external: 301
%% El usuario se conecta al host externo por HTTPS
user->>+ external: HTTPS
note over external: NGINX_TLS_LISTEN_IP:TLS_PORT
external->>+ nginx: HTTPS
note over nginx: nginx:443
nginx->>+ sharelatex: HTTP
note over sharelatex: sharlatex:80
%% El usuario se conecta a localhost por HTTP
user->>+ internal: HTTP
note over internal: OVERLEAF_LISTEN_IP:OVERLEAF_PORT
internal->>+sharelatex: HTTP
note over sharelatex: sharlatex:80
%% sharelatex se conecta a git-bridge
sharelatex->>+git-bridge: HTTP /git/
note over git-bridge: git-bridge:8000
note over sharelatex: GIT_BRIDGE_HOST:GIT_BRIDGE_PORT
git-bridge->>+sharelatex: WEB/WEB-API:3000
git-bridge->>+sharelatex: HISTORY-V1:3100
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.