Gerar as chaves e segredos do central-backend¶
Status: Aprovado · Responsável: Gustavo Madruga · Atualizado em: 2026-06-30
Segredos
Gere estes valores numa máquina segura (não no servidor de produção) e guarde a chave privada em cofre (Bitwarden/1Password). Vazou → rotacione (ver Rotação de chaves RSA).
O que é¶
Os segredos que o serviço precisa antes do primeiro deploy: o par de chaves RSA que assina os JWT e (legado) a chave AES.
Quando usar¶
- Antes do primeiro deploy de um ambiente novo.
- Ao provisionar um ambiente de staging/teste isolado.
Pré-requisitos¶
opensslna máquina local.
Passos¶
-
Chave privada RSA-2048 (PKCS#8):
openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out auth_private.pem openssl pkey -in auth_private.pem -pubout -out auth_public.pem -
Converter a privada para base64 de linha única (valor de
AUTH_PRIVATE_KEY):base64 -w0 auth_private.pem > auth_private_b64.txt -
No Coolify, defina as variáveis do serviço:
AUTH_PRIVATE_KEY= conteúdo deauth_private_b64.txtAUTH_KEY_ID= identificador da chave (ex.auth-1); precisa ser único por chaveAUTH_ISSUER=https://auth.xadm.biz
Verificação¶
-
Após o deploy, o JWKS expõe a chave pública com
alg=RS256:curl -sf https://auth.xadm.biz/.well-known/jwks.json | jq '.keys[0] | {alg, kid}' # Esperado: {"alg":"RS256","kid":"auth-1"}
Reversão¶
Trocar a chave depois de em uso exige coordenação com o PowerSync (que cacheia o JWKS) — siga o runbook de Rotação de chaves RSA.
AES (AUTH_CIPHER_KEY) — obrigatória quando a Central de Apps provisiona Garage
A chave AES-256 (openssl rand -base64 32, exatamente 32 bytes em base64) cifrava a
senha do banco de cada cliente em clientes.db_pass. Após a centralização de
pabast_senhas (decisão 0003) essas
colunas foram removidas — mas a chave voltou a ser usada pela Central de Apps: o
GarageProvider cifra com ela o secret_access_key da write-key do bucket
(decisão 0012). Ausente ou vazia,
o provisionamento de Garage é recusado antes de criar qualquer recurso (erro claro,
sem bucket/key órfãos). Gere-a em qualquer ambiente que for provisionar arquivos.