fix(deploy): passe de DuckDNS à deSEC, filtré par l'école
Le filtrage du réseau de l'école bloque duckdns.org, site et API, depuis les postes comme depuis la VM : sans API, pas de défi DNS-01. deSEC (dedyn.io) répond depuis les deux. - Domaine enervision-g3.dedyn.io ; provision-host.sh publie par l'API deSEC l'enregistrement du domaine et son joker vers la VM. - make tls-desec remplace tls-duckdns. acme.sh recopie le jeton dans acme/account.conf : le dossier est retiré aux autres comptes. - deploy.yml ne demande un certificat qu'à un .env déjà réaligné sur le domaine deSEC, pour ne pas faire échouer un déploiement en cours de migration.
This commit is contained in:
+4
-4
@@ -38,10 +38,10 @@ Apres l'apply, la machine porte `/srv/enervision/dev`, `/srv/enervision/rec` et
|
||||
manuel, `make stack-up` dans chaque dossier ; les suivants sont joues par le runner a chaque push
|
||||
sur `dev` et sur `main`, et a chaque lancement manuel d'une autre branche pour `dev`.
|
||||
|
||||
Noms et certificats (ADR 0018) : avant l'apply, l'enregistrement DuckDNS de `domaine` doit viser
|
||||
`ssh_host`, et son jeton se trouver dans `<racine>/duckdns.token` (600, proprietaire). L'apply
|
||||
obtient alors un certificat Let's Encrypt par environnement et planifie leur renouvellement ;
|
||||
sans jeton, chaque environnement garde un certificat auto-signe. Le frontal SNI (`infra/front`)
|
||||
Noms et certificats (ADR 0018) : avant l'apply, le jeton deSEC de `domaine` doit se trouver dans
|
||||
`<racine>/desec.token` (600, proprietaire). L'apply fait alors pointer le domaine et son joker
|
||||
vers la machine, obtient un certificat Let's Encrypt par environnement et planifie leur
|
||||
renouvellement ; sans jeton, chaque environnement garde un certificat auto-signe. Le frontal SNI (`infra/front`)
|
||||
se demarre une fois depuis le dossier de la prod, `make front-up`.
|
||||
|
||||
Retirer le runner se fait a la main, depuis les parametres du depot : `terraform destroy` ne le
|
||||
|
||||
@@ -78,12 +78,12 @@ Renouvellement, à passer en tâche planifiée sur la machine :
|
||||
|
||||
### Let's Encrypt par DNS-01, le mode de la VM
|
||||
|
||||
La VM n'a qu'une IP privée : le défi HTTP-01 y est impossible. Ses trois noms sont chez DuckDNS,
|
||||
La VM n'a qu'une IP privée : le défi HTTP-01 y est impossible. Ses trois noms sont chez deSEC,
|
||||
dont l'API pose l'enregistrement TXT du défi DNS-01, et acme.sh le fait sans rien ouvrir
|
||||
([ADR 0018](../../docs/adr/0018-noms-duckdns-certificats-dns01-et-frontal-sni.md)).
|
||||
([ADR 0018](../../docs/adr/0018-noms-desec-certificats-dns01-et-frontal-sni.md)).
|
||||
|
||||
```bash
|
||||
make tls-duckdns # PUBLIC_HOST lu dans .env, jeton dans ../duckdns.token (600)
|
||||
make tls-desec # PUBLIC_HOST lu dans .env, jeton dans ../desec.token (600)
|
||||
```
|
||||
|
||||
La cible est rejouable : acme.sh ne renouvelle qu'à trente jours de l'échéance, installe le
|
||||
|
||||
@@ -45,8 +45,8 @@ variable "depot_url" {
|
||||
|
||||
variable "domaine" {
|
||||
type = string
|
||||
description = "Nom DuckDNS de la prod, rec. et dev. en sous-domaines (ADR 0018). Son enregistrement doit viser ssh_host, et son jeton se trouver dans <racine>/duckdns.token sur la machine."
|
||||
default = "enervision-g3.duckdns.org"
|
||||
description = "Domaine deSEC de la prod, rec. et dev. en sous-domaines (ADR 0018). Son jeton doit se trouver dans <racine>/desec.token sur la machine : provision-host.sh y fait pointer le domaine et son joker vers la machine."
|
||||
default = "enervision-g3.dedyn.io"
|
||||
}
|
||||
|
||||
variable "adresse_publique" {
|
||||
|
||||
Reference in New Issue
Block a user