Credenziali & Rotazione

Ogni segreto generato da un'installazione Conzent OCI auto-ospitata, dove è memorizzato e come ruotarlo — incluso il recupero di una password admin persa senza email.

Credenziali & Rotazione

L'installer genera ogni segreto di cui la tua installazione ha bisogno, quindi nulla viene fornito con una password predefinita. Questa pagina elenca ciò che è stato generato, dove si trova ciascun valore e come cambiarlo senza compromettere l'installazione.

Cosa ha generato l'installer

Segreto Generato come Memorizzato in Protegge
Password admin Stringa casuale di 16 caratteri .conzent-credentials (modalità 600) e hash bcrypt nel database Accesso al dashboard
DB_PASSWORD Stringa casuale di 24 caratteri .env, due volte: DB_PASSWORD= e all'interno di DATABASE_URL= Accesso a MariaDB
SCANNER_API_KEY Stringa casuale di 32 caratteri .env Autenticazione app-scanner
APP_SECRET Stringa esadecimale di 64 caratteri .env Riservato — nessun percorso di codice lo legge oggi

Visualizza le credenziali admin salvate in qualsiasi momento con bash scripts/install.sh --config.

Prima cosa da fare: .conzent-credentials contiene la tua password admin in chiaro. Esiste affinché l'installer possa mostrartela di nuovo se te la sei persa. Una volta che la password è in un gestore di password, elimina il file con rm .conzent-credentials. Nulla dipende da esso.

Rotazione della password admin

Se puoi accedere, cambiala nel dashboard sotto Account → Profilo.

Se non puoi accedere, reimpostala dal host. Questo era un vicolo cieco: bin/oci setup rifiuta di essere eseguito una volta che esiste un account, e l'email "password dimenticata" ha bisogno di un server SMTP funzionante, che le installazioni auto-ospitate spesso non hanno.

# Genera una nuova password e stampala
docker compose exec app php bin/oci user:password --email=you@example.com

# Oppure impostane una specifica
docker compose exec app php bin/oci user:password --email=you@example.com --password='your-new-password'

Il comando esegue l'hashing bcrypt e memorizza la nuova password, disconnette ogni sessione esistente per quell'utente e cancella qualsiasi blocco da tentativi di accesso falliti. Funziona per qualsiasi utente, non solo per gli admin — utile quando un cliente dimentica la propria e non hai un server di posta.

Per far funzionare invece il flusso email, configura SMTP in .env (MAIL_HOST, MAIL_PORT, MAIL_USERNAME, MAIL_PASSWORD, MAIL_ENCRYPTION, MAIL_FROM_ADDRESS), riavvia e testa con docker compose exec app php bin/oci test:email --to=you@example.com. Con MAIL_HOST vuoto, Conzent registra "Email non inviata: nessun server SMTP configurato" e prosegue — i link di reimpostazione non vengono mai consegnati.

Rotazione della password del database

Quattro luoghi devono concordare: MariaDB stesso, DB_PASSWORD, DATABASE_URL e i container in esecuzione.

# 1. Scegli una nuova password
NEW_PASS=$(openssl rand -hex 16)

# 2. Cambiala all'interno di MariaDB
docker compose exec -T mariadb mariadb -uroot -p"$DB_ROOT_PASSWORD" \
  -e "ALTER USER 'oci'@'%' IDENTIFIED BY '$NEW_PASS'; FLUSH PRIVILEGES;"

# 3. Aggiorna ENTRAMBI i luoghi in .env
sed -i "s|^DB_PASSWORD=.*|DB_PASSWORD=$NEW_PASS|" .env
sed -i "s|^DATABASE_URL=.*|DATABASE_URL=mysql://oci:$NEW_PASS@mariadb:3306/oci?charset=utf8mb4|" .env

# 4. Riavvia i servizi che mantengono le connessioni
docker compose up -d --force-recreate app worker scheduler beacon-worker

# 5. Conferma
docker compose exec app php bin/oci health

Se health riporta un errore del database, i due valori .env non concordano. DATABASE_URL è ciò che l'applicazione utilizza effettivamente; DB_PASSWORD è ciò con cui MariaDB è inizializzato. Entrambi devono contenere il nuovo valore.

DB_ROOT_PASSWORD è impostato su root per impostazione predefinita. Il container di MariaDB non pubblica alcuna porta host nello stack auto-ospitato, quindi è raggiungibile solo dall'interno della rete Compose — ma imposta un valore reale prima di aggiungere qualsiasi mappatura di porta host di tua scelta.

Rotazione della chiave API dello scanner

sed -i "s|^SCANNER_API_KEY=.*|SCANNER_API_KEY=$(openssl rand -hex 16)|" .env
docker compose up -d --force-recreate scanner app worker scheduler
docker compose exec app php bin/oci scanner:register
docker compose exec app php bin/oci scanner:health

La registrazione è chiave per URL e idempotente, quindi rieseguire aggiorna il record esistente piuttosto che aggiungere un duplicato. Se esegui scanner aggiuntivi, ruota la chiave su ciascuno e ri-registrati per ciascun URL.

Chiavi API e chiavi del sito

Due credenziali che l'installer non genera:

  • Chiavi API — create per utente per accesso programmatico. Revoca e riemetti dal dashboard.
  • Chiavi del sito — il valore data-key in ciascun frammento di incorporamento. Questo è un identificatore pubblico, non un segreto: appare nel codice sorgente di ogni sito che utilizza il banner. Non può essere ruotato senza aggiornare l'incorporamento di quel sito.

Gestione di .env

.env è il file più sensibile nell'installazione. È gitignored e creato in modalità 600 — se lo hai copiato in giro, ripristinalo con chmod 600 .env. È incluso negli archivi di backup, motivo per cui anche questi sono scritti in modalità 600 e appartengono a un luogo privato.

Il riferimento completo vive con il codice: docs/credentials.md su GitHub.

Torna alla Documentazione