Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| d55a088e41 | |||
| 95b192858b |
@@ -316,6 +316,72 @@ SENTRY_DSN=http://<clé>@glitchtip.interne:<port>/<id-projet-api>
|
|||||||
3. Frontend : ajouter les secrets Gitea ci-dessus.
|
3. Frontend : ajouter les secrets Gitea ci-dessus.
|
||||||
4. Tagger une version (`v*`) → la CI build l'image avec le DSN front baké → `deploy.sh`.
|
4. Tagger une version (`v*`) → la CI build l'image avec le DSN front baké → `deploy.sh`.
|
||||||
|
|
||||||
|
### Certificat HTTPS interne (CA auto-signée)
|
||||||
|
|
||||||
|
GlitchTip est servi en **HTTPS** sur `https://logs.malio-dev.fr` (nginx devant), avec un certificat
|
||||||
|
**auto-signé** par une **CA interne** (« MALIO-DEV Local Root CA », cert serveur `*.malio-dev.fr`).
|
||||||
|
`malio-dev.fr` est un **domaine interne uniquement** (DNS local, pas de résolution publique).
|
||||||
|
|
||||||
|
> **Pourquoi pas Let's Encrypt ?** Une CA publique doit valider le domaine via Internet (challenge
|
||||||
|
> HTTP ou DNS public). Comme `malio-dev.fr` n'existe qu'en interne, aucune validation n'est
|
||||||
|
> possible → on reste sur la CA interne, qu'il faut faire **approuver partout** où la connexion TLS
|
||||||
|
> est établie. Tant que la CA n'est pas approuvée, **rien ne remonte** : le backend logue
|
||||||
|
> « Message not sent » (SDK Sentry) et le navigateur affiche « connexion non sécurisée » (le front
|
||||||
|
> n'envoie rien).
|
||||||
|
|
||||||
|
**Qui doit faire confiance à la CA ?** La connexion à `logs.malio-dev.fr` part de deux endroits
|
||||||
|
différents, donc deux fixes distincts :
|
||||||
|
|
||||||
|
| Émetteur des erreurs | Qui établit le TLS | Où approuver la CA |
|
||||||
|
|---|---|---|
|
||||||
|
| Backend (Symfony) | le **container PHP** | CA bakée dans l'**image Docker** (ci-dessous) |
|
||||||
|
| Frontend (SPA) | le **navigateur du poste** | CA poussée sur les **postes via GPO** (ci-dessous) |
|
||||||
|
|
||||||
|
#### Fix backend — CA bakée dans l'image
|
||||||
|
|
||||||
|
Le certificat **public** de la root CA est committé dans le repo (`infra/prod/malio-dev-root-ca.crt`,
|
||||||
|
aucune clé privée) et installé dans le trust store du container au build (`infra/prod/Dockerfile`,
|
||||||
|
stage production — `ca-certificates` est déjà installé) :
|
||||||
|
|
||||||
|
```dockerfile
|
||||||
|
COPY infra/prod/malio-dev-root-ca.crt /usr/local/share/ca-certificates/malio-dev-root-ca.crt
|
||||||
|
RUN update-ca-certificates
|
||||||
|
```
|
||||||
|
|
||||||
|
Le container fait alors confiance à tout `*.malio-dev.fr` interne et le SDK Sentry backend peut
|
||||||
|
envoyer. Vérification :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
curl --cacert infra/prod/malio-dev-root-ca.crt https://logs.malio-dev.fr/api/1/store/ # → HTTP 200
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Fix postes — CA poussée par GPO (Active Directory)
|
||||||
|
|
||||||
|
Le front est une SPA : c'est le **navigateur de l'utilisateur** qui contacte `logs.malio-dev.fr`,
|
||||||
|
donc c'est le **poste** qui doit faire confiance à la CA (la CA de l'image ne sert qu'au backend).
|
||||||
|
Sur le domaine Active Directory, on pousse la CA **une seule fois via GPO** plutôt que poste par poste :
|
||||||
|
|
||||||
|
1. Contrôleur de domaine → **Group Policy Management** → éditer une GPO.
|
||||||
|
2. `Configuration ordinateur → Stratégies → Paramètres Windows → Paramètres de sécurité → Stratégies
|
||||||
|
de clé publique → Autorités de certification racines de confiance`.
|
||||||
|
3. Clic droit → **Importer** → sélectionner `rootCA.crt` (« MALIO-DEV Local Root CA »).
|
||||||
|
4. Sur les postes : `gpupdate /force` (ou attendre le rafraîchissement), puis **redémarrer le navigateur**.
|
||||||
|
|
||||||
|
- Chrome / Edge utilisent le magasin Windows → confiance automatique.
|
||||||
|
- ⚠️ **Firefox** a son propre magasin : activer `security.enterprise_roots.enabled = true`
|
||||||
|
(`about:config` ou via policy) pour qu'il lise le magasin Windows.
|
||||||
|
|
||||||
|
> **Validation poste** : ouvrir `https://logs.malio-dev.fr` → cadenas vert sans avertissement = CA
|
||||||
|
> approuvée = le front peut envoyer.
|
||||||
|
|
||||||
|
#### Renouvellement / changement de CA
|
||||||
|
|
||||||
|
Si la CA interne change (rotation, expiration) :
|
||||||
|
|
||||||
|
1. Remplacer `infra/prod/malio-dev-root-ca.crt` par le nouveau certificat public, commit + **rebuild
|
||||||
|
de l'image** (re-tag `v*`) pour le backend.
|
||||||
|
2. **Re-pousser** la nouvelle CA via GPO (étapes ci-dessus) pour les postes.
|
||||||
|
|
||||||
## Licence
|
## Licence
|
||||||
|
|
||||||
Propriétaire — Tous droits réservés.
|
Propriétaire — Tous droits réservés.
|
||||||
|
|||||||
+1
-1
@@ -1,2 +1,2 @@
|
|||||||
parameters:
|
parameters:
|
||||||
app.version: '0.4.42'
|
app.version: '0.4.43'
|
||||||
|
|||||||
Reference in New Issue
Block a user