Passer au contenu principal

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 :
assets/certs/ca.crt
assets/certs/server.crt
assets/certs/server.key
Le pilote les copie dans le dossier de travail du Caddy :
assets/caddy/ca.crt
assets/caddy/server.crt
assets/caddy/server.key
Le certificat CA peut être téléchargé depuis :
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 :
{
  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 :
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ômeCause probableRéparer
Le navigateur bloque le pilote HTTPS URLCertificat CA non fiableInstallez ca.crt sur le périphérique POS.
https://plato-printer.local ne résout pasDNS/hôtes manquantsAjoutez un DNS local ou une entrée d’hôtes à l’adresse IP du pilote.
Port 443 indisponibleUn autre service l’utiliseArrêtez l’autre service ou modifiez caddy.httpsPort.
HTTPS ignoré sur macOS/LinuxLe code est uniquement WindowsUtilisez HTTP en développement ou testez Caddy séparément.
Erreur de démarrage de Windows 7Version Caddy non 2.6.4Redéfinissez caddy.version sur 2.6.4.