> ## Documentation Index
> Fetch the complete documentation index at: https://docs.plato.ae/llms.txt
> Use this file to discover all available pages before exploring further.

# HTTPS et maillage

> Proxy inverse Caddy et signalisation maillée PeerJS.

# HTTPS et maillage

Le pilote d'imprimante PC peut exposer HTTPS via la signalisation Caddy et PeerJS via `/mesh`.

## Conditions HTTPS

HTTPS démarre uniquement lorsque tous ces éléments sont vrais :

* `features.httpsEnabled` est `true`.
* `caddy.enabled` est `true`.
* La plate-forme d'exécution est Windows.
* Des certificats existent dans `assets/certs`.
* Caddy peut être installé ou réutilisé.

Si la configuration de HTTPS échoue, le pilote enregistre l'erreur et continue avec HTTP.

## Fichiers de certificat

Fichiers requis :

```txt theme={null}
assets/certs/ca.crt
assets/certs/server.crt
assets/certs/server.key
```

Le pilote les copie dans le dossier de travail du Caddy :

```txt theme={null}
assets/caddy/ca.crt
assets/caddy/server.crt
assets/caddy/server.key
```

Le certificat CA peut être téléchargé depuis :

```txt theme={null}
http://<driver-ip>:8080/ca.crt
```

## Installation du chariot

La configuration du Caddy utilise cet ordre :

1. Réutilisez `assets/caddy/bin/caddy.exe` s'il est déjà installé avec `.installed`.
2. Copiez le `caddy.exe` groupé à partir des chemins locaux connus.
3. Téléchargez Caddy depuis la version GitHub URL.

La version configurée du Caddy est par défaut `2.6.4`.

## Fichier Caddy généré

Le pilote écrit un Caddyfile comme :

```txt theme={null}
{
  auto_https disable_redirects
}

plato-printer.local {
  reverse_proxy localhost:8080

  handle /mesh/* {
    reverse_proxy localhost:8080 {
      header_up Connection {http.request.header.Connection}
      header_up Upgrade {http.request.header.Upgrade}
    }
  }

  tls "assets/caddy/server.crt" "assets/caddy/server.key"
}
```

Si `caddy.httpsPort` n'est pas `443`, l'adresse du site inclut le port.

## Durée d'exécution du chariot

Caddy s'exécute en tant que processus enfant avec :

* `XDG_DATA_HOME` réglé sur `assets/caddy/data`
* `XDG_CONFIG_HOME` réglé sur `assets/caddy/config`
* répertoire de travail défini sur `assets/caddy`

Si Caddy sort de manière inattendue, le conducteur réessaye jusqu'à 5 fois avec un délai `2000ms`.

## Signalisation maillée

Lorsque `features.meshEnabled` est vrai, le pilote monte PeerJS à l'adresse :

```txt theme={null}
ws://<driver-host>:8080/mesh
wss://plato-printer.local/mesh
```

`GET /mesh-status` renvoie :

* si le maillage est activé
* chemin de maillage
* port
* identifiants des pairs connectés
* nombre de pairs

Le maillage signale uniquement. Les tâches d'impression utilisent toujours les points de terminaison HTTP.

## Problèmes courants de HTTPS

| Symptôme                                    | Cause probable                 | Réparer                                                              |
| ------------------------------------------- | ------------------------------ | -------------------------------------------------------------------- |
| Le navigateur bloque le pilote HTTPS URL    | Certificat CA non fiable       | Installez `ca.crt` sur le périphérique POS.                          |
| `https://plato-printer.local` ne résout pas | DNS/hôtes manquants            | Ajoutez un DNS local ou une entrée d'hôtes à l'adresse IP du pilote. |
| Port 443 indisponible                       | Un autre service l'utilise     | Arrêtez l'autre service ou modifiez `caddy.httpsPort`.               |
| HTTPS ignoré sur macOS/Linux                | Le code est uniquement Windows | Utilisez HTTP en développement ou testez Caddy séparément.           |
| Erreur de démarrage de Windows 7            | Version Caddy non `2.6.4`      | Redéfinissez `caddy.version` sur `2.6.4`.                            |
