Mukautettu domain & HTTPS
Uusi asennus vastaa osoitteessa http://localhost. Tämä opas siirtää sen omalle domainillesi HTTPS:n kautta – esimerkiksi https://consent.example.com.
Tee tämä ennen kuin lisäät sivustoja. Jokaiseen Conzentin luomaan suostumusskriptiin on leivottu domainisi sisään. Domainin vaihtaminen myöhemmin onnistuu, mutta sinun on luotava skriptit uudelleen (vaihe 5) ja päivitettävä upotuskoodinpätkä kaikilla verkkosivustoilla, jotka jo käyttävät niitä (vaihe 6).
1. Osoita DNS palvelimellesi
Luo A-tietue haluamallesi isäntänimelle, osoittamaan palvelimesi julkiseen IP-osoitteeseen:
consent.example.com. A 203.0.113.10
Varmista, että se ratkaisee komennolla dig +short consent.example.com ennen jatkamista. Alatasoalue jo omistamastasi domainista – consent., cmp., privacy. – on tavallinen valinta.
2. Aseta APP_URL
APP_URL on ainoa totuuden lähde jokaiselle Conzentin tuottamalle absoluuttiselle URL:lle: suostumusskriptin päätepisteet, kojelaudassa näkyvä upotuskoodinpätkä, salasananpalautuslinkit ja OAuth-takaisinkutsut.
Muokkaa asennushakemistossasi olevaa .env-tiedostoa:
APP_URL=https://consent.example.com
Käytä tarkkaa julkista URL:ia, jossa on skeema eikä lopussa vinoviivaa. Jos päätät TLS:n – ja sinun pitäisi – se tarkoittaa https://, vaikka kontti itse käyttää edelleen tavallista HTTP:tä sisäisesti. Asettamalla https:// vaihdetaan myös "muista minut" -eväste Secure-tilaan, joten sitä ei koskaan lähetetä tavallisen HTTP:n kautta.
Uudet asennukset voivat tehdä vaiheet 1 ja 2 yhdellä kertaa:
curl -sSL https://getconzent.com/install | sh -s -- --domain consent.example.com
3. Päätä TLS
Mukana tuleva nginx-kontti palvelee tavallista HTTP:tä portissa ${APP_PORT:-80}. Se ei hanki eikä tarjoa varmenteita.
Vaihtoehto A — Caddy edessä. Caddy hakee ja uusii Let's Encrypt -varmenteet automaattisesti. Vapauta portti 80 asettamalla APP_PORT=8080 .env-tiedostoon, luo sitten docker-compose.override.yml:
services:
caddy:
image: caddy:latest
ports:
- "80:80"
- "443:443"
volumes:
- ./docker/caddy/Caddyfile:/etc/caddy/Caddyfile:ro
- caddy-data:/data
- caddy-config:/config
depends_on:
- nginx
restart: unless-stopped
volumes:
caddy-data:
caddy-config:
Tiedostolla docker/caddy/Caddyfile:
consent.example.com {
reverse_proxy nginx:80
}
Suorita docker compose up -d. Caddy myöntää varmenteen ensimmäisellä pyynnöllä.
Vaihtoehto B — olemassa oleva nginx tai Apache. Aseta APP_PORT=8080 .env-tiedostoon ja välitä liikenne sille:
server {
listen 443 ssl http2;
server_name consent.example.com;
ssl_certificate /etc/letsencrypt/live/consent.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/consent.example.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
X-Forwarded-For on tärkeä siisteyden lisäksi: Conzent tallentaa kävijän IP-osoitteen jokaiseen suostumuslokin merkintään ja käyttää sitä geokohdistamiseen. Ilman otsikkoa jokainen suostumus kohdistuu välityspalvelimeesi.
Vaihtoehto C — Cloudflare. Välitä tietue ja aseta SSL/TLS-tilaksi Full. Pidä alkuperä-TLS päällä; "Flexible" jättää hyppäyksen Cloudflaren ja palvelimesi välillä salaamattomaksi. Aseta CLOUDFLARE_ZONE_ID ja CLOUDFLARE_API_TOKEN .env-tiedostoon, jotta Conzent tyhjentää reunavälimuistin automaattisesti skriptien muuttuessa.
Laita pinomuutokset docker-compose.override.yml-tiedostoon, älä koskaan docker-compose.yml-tiedostoon – päivitykset nollaavat seuratut tiedostot, ja override-tiedosto jätetään rauhaan.
4. Käynnistä uudelleen ja vahvista
docker compose up -d
docker compose exec app php bin/oci health
Lataa https://consent.example.com. Sinun pitäisi saada kirjautumissivu voimassa olevan varmenteen kautta.
5. Luo suostumusskriptit uudelleen
Tämä on vaihe, jonka on helppo jättää väliin, ja se aiheuttaa outoimpia oireita jos niin käy.
Jokaisen sivuston skripti sijaitsee osoitteessa public/sites_data/{site_key}/script.js ja sisältää absoluuttiset URL:t, jotka on rakennettu APP_URL:sta luomishetkellä – API-päätepiste, johon se lähettää suostumuksen, sen hakema CSS ja logopolut. APP_URL:n muuttaminen ei kirjoita uudelleen jo olemassa olevia skriptejä. Kunnes luot skriptit uudelleen, asiakkaidesi sivustojen bannerit kutsuvat edelleen vanhaa isäntää: suostumus kirjataan väärää alkuperää vastaan tai epäonnistuu kokonaan, kun vanha osoite lakkaa vastaamasta.
docker compose exec app php bin/oci scripts:regenerate
6. Päivitä upotuskoodinpätkä verkkosivustoillasi
Kojelaudassa näkyvä koodinpätkä osoittaa nyt uuteen domainiin:
<script async src="https://consent.example.com/c/consent.js" data-key="YOUR_SITE_KEY"></script>
Jos siirrät live-asennusta, pidä vanha isäntänimi ratkaisemassa ja välittämässä uuteen, kunnes olet vaihtanut kaikki upotukset. Latausohjelma on koko bannerin sisääntulopiste – rikkinäinen src tarkoittaa, ettei suostumusbanneria näy lainkaan.
7. Tarkista päästä päähän
curl -sSI https://consent.example.com/c/consent.js | head -1
curl -s https://consent.example.com/sites_data/YOUR_SITE_KEY/version.json
Lataa sitten sivu, johon banneri on upotettu, hyväksy suostumus ja vahvista, että merkintä näkyy kohdassa Suostumuslokit. Tämä yksittäinen pyyntökierto testaa DNS:n, TLS:n, latausohjelman, luodun skriptin ja API-polun yhdessä.
Vianmääritys
| Oire | Syy |
|---|---|
| Banneri ei näy | Upotus osoittaa edelleen vanhaan domainiin, tai skriptejä ei ole koskaan luotu uudelleen |
| Suostumuslokit pysähtyivät siirron jälkeen | Luotu skripti lähettää vanhaan API-polkuun – suorita scripts:regenerate |
| Jokainen suostumustietue näyttää saman IP-osoitteen | Välityspalvelin ei välitä X-Forwarded-For-otsikkoa |
Salasananpalautussähköpostit viittaavat localhostiin | APP_URL:ia ei päivitetty, tai kontteja ei käynnistetty uudelleen .env:n muokkaamisen jälkeen |
| Sekasisältövaroitukset | APP_URL on http:// kun taas sivusto tarjotaan HTTPS:n kautta |
| Varmenteen myöntäminen ei onnistu | Portti 80 on edelleen toisen palvelun hallussa |
| Compose-muokkaukset katosivat | Päivitys nollasi seuratut tiedostot – siirrä ne docker-compose.override.yml-tiedostoon |
Koko viite löytyy koodin yhteydestä: docs/custom-domain.md GitHubissa.