Documentation Frappe Framework

Frappe Framework

HTTPS avec Let’s Encrypt

Une commande bench demande le certificat et ajoute un renouvellement mensuel à la crontab de root. On peut aussi passer par Certbot à la main.

1 min de lectureMis à jour le Source : docs.frappe.io

Prérequis

  1. Un multi-tenant par DNS.
  2. Le site accessible par un domaine valide.
  3. Les droits root.

Les certificats Let’s Encrypt expirent tous les trois mois. La pose manuelle du certificat dans nginx est dans Configurer HTTPS.

Commande bench

terminal
sudo -H bench setup lets-encrypt [site-name]

Plusieurs questions sont posées. La commande ajoute aussi une entrée à la crontab de root, qui tente un renouvellement chaque mois. Cela exige des droits élevés.

Domaine personnalisé, voir Ajouter des domaines personnalisés :

terminal
sudo -H bench setup lets-encrypt [site-name] --custom-domain [custom-domain]

Renouvellement manuel : sudo bench renew-lets-encrypt.

Méthode manuelle

Téléchargez le script Certbot-auto adapté dans /opt, depuis certbot.eff.org. Arrêtez nginx : sudo service nginx stop. Lancez ./opt/certbot-auto certonly --standalone. Indiquez un e-mail pour les avis et la récupération de clé, acceptez l’accord, puis les noms de domaine. Un seul certificat peut couvrir plusieurs noms, par exemple example.com et www.example.com, s’ils sont tous saisis.

Fichiers PEM, sous /etc/letsencrypt/live/example.com : cert.pem, chain.pem, fullchain.pem (certificat et chaîne) et privkey.pem.

Dans frappe-bench/sites/{{site_name}}/site_config.json :

json
"ssl_certificate": "/etc/letsencrypt/live/example.com/fullchain.pem",
"ssl_certificate_key": "/etc/letsencrypt/live/example.com/privkey.pem"

Puis bench setup nginx et sudo service nginx restart.

Renouvellement expérimental

En root, crontab -e :

code
MAILTO="[email protected]"
0 0 1-7 * * [ "$(date '+\%a')" = "Mon" ] && sudo service nginx stop && /opt/certbot-auto renew && sudo service nginx start

La source le décrit comme le premier lundi du mois, à minuit, avec un e-mail si la ligne s’exécute. Nginx est arrêté le temps du renouvellement.

Point d’attention

Sans renouvellement, le certificat de trois mois cesse d’être valable. La crontab bench est mensuelle. La méthode manuelle arrête nginx pendant Certbot et pendant le renouvellement expérimental.

HTTPS Let’s Encrypt pour un site Frappe | ERPNext Lab