Le chiamate API restituiscono 403 dietro Cloudflare

Questo è il nostro scenario:

La nostra discussione è in esecuzione su un’istanza EC2 separata dal nostro server principale. L’istanza di discussione crea il proprio certificato server utilizzando Let’s Encrypt con il meccanismo integrato.

Il server principale utilizza l’API del server di discussione utilizzando il suo DN pubblico.

Il forum è un sottodominio del sito, ovvero “forum.[mydomain].com”.

Questo funziona perfettamente.

Ora abbiamo messo l’intero sito dietro Cloudflare.

Il forum stesso funziona perfettamente se acceduto tramite browser.

Tuttavia, se il sito principale tenta di raggiungere l’istanza di discussione tramite una chiamata API, ora riceve un errore 403.

Ho già provato tutti i passaggi elencati qui: Using Discourse with Cloudflare: Best Practices - Documentation / Self-Hosting - Discourse Meta inclusa la disattivazione del controllo di integrità del browser per forum.[mydomain].com/u/by-external/* ma senza successo.

L’impostazione SSL in Cloudflare è impostata su “Full”. “Full (Strict)” non viene utilizzato, funzionerebbe anche, ma causa problemi con le pagine di errore di fallback se il sito è inattivo, quindi preferirei continuare a utilizzare “Full”.

Non ho idea del motivo per cui la chiamata API fallirebbe con 403 e non ho idea di come risolvere quel problema. Per ora ho disattivato il proxy per forum.[mydomain].com come soluzione temporanea, il che risolve il problema, ma ovviamente significa che la Discussione non viene memorizzata nella cache o protetta da Cloudflare.

Qualche idea su cosa potrebbe essere sbagliato?