Não é possível conectar Discourse e WordPress

I’m facing an issue while connecting Discourse to WordPress using the Discourse Plugin. I’m running Discourse on a Digital Ocean droplet. The setup was performed exactly as mentioned here (discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub). The droplet itself sits behind CloudFlare and HTTPS was setup using Let’s Encrypt (using Set up HTTPS support with Let's Encrypt). The WordPress site is deployed on SiteGround, also behind CloudFlare.

When I add the forum’s root address, API key and administrator username in the plugin settings, in WordPress’ console, it still keeps saying “You’re not connected to Discourse”. Upon further investigating I’ve found that this particular request /site.json%20?api_key=[FILTERED]&api_username=<username> is returning 403 Forbidden even with a fresh, valid API Key and a valid administrator username.

The request to site.json is checking that an API request can be made with the values supplied for the API Key and Publishing Username that are set on WordPress. If you make the request with curl from your local computer, is it working for you? For example, this request with $api_key set to your API key:

curl -X GET 'https://forum.example.com/site.json?api_key=$api_key&api_username=system'

If this is woking for you, you could try installing the WordPress Health Check plugin and looking at the Secure communication row on the Site Status tab to see if it’s finding any issues with communicating with external services using secure connections (SSL.)

This curl command works perfectly fine

curl -X GET "https://community.worldbrain.io/site.json%20\?api_key\=blabla\&api_username\=bla"

Health Check mentions Your WordPress install can communicate securely with other services.

Here is what I’m seeing in HTTP API Calls section

Of course the forum itself is working so it’s pretty bizarre to see Could not resolve host

Can I ask how have you installed SSL on your discourse? Is it a generic cloudflare certificate or something?

Edit:
Indeed it’s cloudflare https://www.whynopadlock.com/results/df748a55-67d9-4477-9502-c618b69cb38c

And I’m assuming you’re running their “Flexible” SSL mode. This explains a lot about why the calls are messed up.

Tive o mesmo erro. Por favor, ajude!

Fiz isso e obtive o seguinte:

curl -I GET 'https://forum.fususu.com/users/mrsusu.json?api_key=[secretapi]&api_username=mrsusu'

HTTP/1.1 403 Forbidden
Server: CloudFront
Date: Sat, 29 Jun 2019 19:00:27 GMT
Content-Type: text/html
Content-Length: 556
Connection: keep-alive
X-Cache: Error from cloudfront
Via: 1.1 dfb4b390f0fb83a73bab72d387a3e1dc.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: NRT20-C3
X-Amz-Cf-Id: qO_fq0M_GX8wUuqJFCpBDXL6dlJDkKVWJ-BKOSD6qfegOqdNr_837g==

HTTP/1.1 200 OK
Date: Sat, 29 Jun 2019 19:00:28 GMT
Content-Type: application/json; charset=utf-8
Connection: keep-alive
Set-Cookie: __cfduid=de8f93857163fcf3bfca002a5af11f38c1561834828; expires=Sun, 28-Jun-20 19:00:28 GMT; path=/; domain=.fususu.com; HttpOnly; Secure
Vary: Accept-Encoding
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-Download-Options: noopen
X-Permitted-Cross-Domain-Policies: none
Referrer-Policy: strict-origin-when-cross-origin
X-Discourse-Username: mrsusu
X-Discourse-Route: users/show
Cache-Control: no-cache, no-store
X-Request-Id: 2a4e74b8-3be0-47cf-81e9-fc5682e678c5
Set-Cookie: __profilin=p%3Dt%2Ca%3Dee922625e907ef0b48cfd16cc80c816b%7C20b0d8cc0a038e5816c59c085fca59e5; path=/; secure; HttpOnly

X-Runtime: 0.114832
Strict-Transport-Security: max-age=31536000
Expect-CT: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
Server: cloudflare
CF-RAY: 4eea24bb28432e07-NRT

Meu site WordPress fususu.com está configurado com SSL flexível (Cloudflare),
com uma regra de página para o fórum forum.fususu.com - SSL completo (Cloudflare).

Conseguiu fazer isso funcionar?

Ainda não… Eu desisti temporariamente ^^!

Você conseguiu fazer isso funcionar? Tenho a mesma configuração (Discourse no Digital Ocean, WordPress no Siteground, ambos atrás do Cloudflare) e o mesmo erro. O Curl funciona sem problemas na minha máquina local.

Alguma sugestão?

Como está configurado o SSL no lado do Cloudflare? Você está usando a otimização de desempenho do Cloudflare no Discourse?

Você realmente deve estar executando o SSL do Cloudflare no modo “full”, não no modo “flexible”.
Se você tiver a otimização de desempenho do Cloudflare ativada no Discourse, desative-a criando uma regra de página.

Se isso não ajudar, compartilhe o domínio do seu Discourse.

A URL é https://discuss.guidery.com

O desempenho e a segurança estão desativados para o subdomínio “discuss” por meio de uma regra de página.
O SSL está configurado como “Full (Strict)”.

A mensagem de erro que estou vendo é “cURL error 6: Could not resolve host: discuss.guidery.com”, que está sendo relatada pelo plugin WP Query Monitor.

Ao executar o mesmo comando cURL no meu computador local, funciona sem problemas.

Uma regra de firewall está bloqueando conexões no lado do WordPress?

Quando faço SSH no servidor compartilhado (hospedado pela SiteGround) e executo manualmente um comando curl para acessar minha instalação do Discourse, recebo a mesma mensagem de erro;

“curl: (6)” Could not resolve host: discuss.guidery.com".

Até criei um novo site WordPress, usando um novo domínio (embora no mesmo servidor da SiteGround) sem o Cloudflare gerenciando o DNS, e recebi a mesma mensagem de erro.

Alguma outra sugestão?

Talvez seja melhor entrar em contato com a SiteGround caso eles estejam bloqueando o IP do seu servidor por algum motivo?

Resolvido. Foi um daqueles casos irritantes em que simplesmente “começou a funcionar” sem que uma solução clara fosse identificada. Vou assumir que foi um problema de propagação de DNS e, por algum motivo, o resolvedor de DNS da Siteground estava lento.

Se alguém mais encontrar esse problema, minha única sugestão é esperar 48 horas e tentar novamente. :-/

Outro usuário com um problema semelhante entrou em contato com a Siteground. Eles conseguiram resolver o problema. Este post tem os detalhes de como a Siteground corrigiu: [PAID] Fix cURL error 6 in Discourse WP Plugin - #4 by lucas.bagatini.