TLS & certificatesTLS & certificats
Tauri includes an ACME client, acme, that obtains, installs and renews Let's Encrypt certificates (HTTP-01 challenge, P-256 keys). The HTTPS server serves two kinds of certificates: the default certificate — the machine's identity — and one per-site certificate attached to each virtual host and chosen by SNI. For hosting accounts, compteadm does all of this (see Hosting).
Tauri intègre un client ACME, acme, qui obtient, installe et renouvelle des certificats Let's Encrypt (challenge HTTP-01, clés P-256). Le serveur HTTPS sert deux sortes de certificats : le certificat par défaut — l'identité de la machine — et un certificat par site, attaché à chaque hôte virtuel et choisi par SNI. Pour les comptes d'hébergement, compteadm fait tout cela (voir Hébergement).
1. PrerequisitesPrérequis
- Run as root — all the state lives under
c:/user/root/.Exécuter en root — tout l'état réside sousc:/user/root/. - An
http 80server running, so that the challenge under/.well-known/acme-challenge/is reachable. It is served from a reserved path whatever the virtual host.Un serveurhttp 80en marche, pour que le challenge sous/.well-known/acme-challenge/soit accessible. Il est servi depuis un chemin réservé, quel que soit l'hôte virtuel. - The domain's DNS must point to this host, and the host must be reachable from the Internet on port 80.Le DNS du domaine doit pointer vers cet hôte, et l'hôte doit être joignable depuis Internet sur le port 80.
- The
httpsserver running, so that an installed certificate is reloaded live.Le serveurhttpsen marche, pour qu'un certificat installé soit rechargé à chaud.
HTTP-01 only works if Let's Encrypt can fetch http://<domain>/.well-known/acme-challenge/… from the Internet: under QEMU/slirp there is no inbound traffic. Check the DNS before every request: failed validations count against the ACME account and can block the renewals of every site it serves.
Le HTTP-01 ne fonctionne que si Let's Encrypt peut récupérer http://<domaine>/.well-known/acme-challenge/… depuis Internet : sous QEMU/slirp il n'y a pas de flux entrant. Vérifiez le DNS avant chaque demande : les validations échouées sont décomptées sur le compte ACME et peuvent bloquer les renouvellements de tous les sites qu'il sert.
2. Staging or productionStaging ou production
By default the client talks to Let's Encrypt staging — fine for testing, but its certificates are not trusted by browsers. The environment is chosen once, when the account is registered, and remembered by every later command: Par défaut, le client parle à l'environnement staging de Let's Encrypt — pratique pour tester, mais ses certificats ne sont pas reconnus par les navigateurs. L'environnement est choisi une fois, à l'enregistrement du compte, et retenu par toutes les commandes suivantes :
acme register you@example.com https://acme-v02.api.letsencrypt.org/directory
register --force recreates the account (the previous one is lost).
register --force recrée le compte (le précédent est perdu).
3. A certificate for a websiteUn certificat pour un site
acme issue www.example.com example.com # HTTP-01 for every name; one certificate (SAN)# HTTP-01 pour chaque nom ; un seul certificat (SAN)
acme deploy-vhost www.example.com # attach it to its virtual host (SNI), live# l'attacher à son hôte virtuel (SNI), à chaud
issue never activates anything. deploy-vhost needs an existing virtual host (vhostadm add), writes the certificate under c:/user/root/tls/d/, records it on the virtual host and makes the servers reload — no restart, no interruption. For a hosting account, compteadm cert <compte> runs both steps after checking the DNS, and leaves a copy in the account's c:/user/<compte>/tls/ mailbox (never served) so the customer can keep it; a certificate the customer drops there is taken over with acme importe-vhost <domaine>.
issue n'active jamais rien. deploy-vhost exige un hôte virtuel existant (vhostadm add), écrit le certificat sous c:/user/root/tls/d/, l'enregistre sur l'hôte virtuel et fait recharger les serveurs — sans redémarrage ni coupure. Pour un compte d'hébergement, compteadm cert <compte> enchaîne les deux étapes après avoir vérifié le DNS, et laisse une copie dans la boîte c:/user/<compte>/tls/ du compte (jamais servie) pour que le client la conserve ; un certificat que le client y dépose est repris par acme importe-vhost <domaine>.
4. The default certificateLe certificat par défaut
The default certificate is served to every connection that matches no virtual host (no SNI, access by IP address) and by FTPS. It is the machine's identity: Le certificat par défaut est servi à toute connexion qui ne correspond à aucun hôte virtuel (sans SNI, accès par adresse IP) et par FTPS. C'est l'identité de la machine :
acme deploy <nom> [-f] # install an issued certificate as the default# installer un certificat émis comme défaut
acme issue <adresse-ip> # certificate for an IP address (160 h validity)# certificat d'adresse IP (validité 160 h)
acme autosigne [-f] [<nom>] # self-signed identity for this machine# identité auto-signée de cette machine
acme montre-demande <nom|ip> # dry run: show the request, no network# à blanc : montre la demande, sans réseau
deploy refuses to take the default certificate from another name without -f: using it for a site would replace the machine's identity (access by IP, FTPS). For a site, use deploy-vhost. An IP-address certificate lasts only 160 hours (Let's Encrypt shortlived profile): the daily renewal handles it with a 3-day margin — keep that task running.
deploy refuse de prendre le certificat par défaut à un autre nom sans -f : l'employer pour un site remplacerait l'identité de la machine (accès par IP, FTPS). Pour un site, utilisez deploy-vhost. Un certificat d'adresse IP ne dure que 160 heures (profil shortlived de Let's Encrypt) : le renouvellement quotidien le prend avec 3 jours de marge — gardez cette tâche active.
5. Where the files areOù sont les fichiers
| PathChemin | ContentContenu |
|---|---|
c:/user/root/acme/ | ACME account: key, account URL, chosen directory.Compte ACME : clé, URL du compte, directory choisi. |
c:/user/root/acme/certs/<nom>.crt, .key, .issued | Issued chain (PEM), raw P-256 key, issue date and names.Chaîne émise (PEM), clé P-256 brute, date et noms d'émission. |
c:/user/root/tls/cert.der, chain.der, key.bin | Default certificate served by HTTPS and FTPS.Certificat par défaut servi par HTTPS et FTPS. |
c:/user/root/tls/d/ | Per-site certificates, referenced by the virtual hosts.Certificats par site, référencés par les hôtes virtuels. |
c:/user/<compte>/tls/ | The account's certificate mailbox (mode 700, never served).Boîte aux certificats du compte (mode 700, jamais servie). |
Formats expected by the servers: raw 32-byte P-256 private key (not PEM), X.509 certificates in DER. Only P-256 is supported (no RSA, no P-384). acme converts what Let's Encrypt returns.
Formats attendus par les serveurs : clé privée P-256 brute de 32 octets (pas de PEM), certificats X.509 en DER. Seule la courbe P-256 est prise en charge (ni RSA, ni P-384). acme convertit ce que rend Let's Encrypt.
6. RenewalRenouvellement
Automatic renewal is wired in: a cerbere task runs acme renew-all every day at 03:17. It re-issues every certificate 60 days old or more (Let's Encrypt certificates last 90 days), reinstalls it where it was — default or virtual host — and reloads the servers live. It does nothing until an account is registered and a certificate issued.
Le renouvellement automatique est câblé : une tâche cerbere lance acme renew-all chaque jour à 03:17. Elle ré-émet tout certificat de 60 jours ou plus (ceux de Let's Encrypt durent 90 jours), le réinstalle là où il était — défaut ou hôte virtuel — et recharge les serveurs à chaud. Elle ne fait rien tant qu'aucun compte n'est enregistré ni aucun certificat émis.
acme renew-all # what the daily task runs# ce que lance la tâche quotidienne
acme renew <nom> # re-issue only (≥ 60 days); then deploy or deploy-vhost# ré-émet seulement (≥ 60 jours) ; puis deploy ou deploy-vhost
NextSuite
Next: PHP & applications, and Security. Ensuite : PHP & applications, et Sécurité.