Problema de incompatibilidade de Redirect URI no Google Auth

Estou tendo um problema semelhante ao que aparece no final deste tópico: Configure Google login for Discourse - #205, mas, no meu caso, o erro do Google diz que a URI na solicitação é a versão http do meu site. Como estou forçando o site a usar https, esse é o endereço que configurei no Google. Meu site Discourse está atrás de um proxy Apache, e o Apache está configurado para redirecionar URLs http para https, e tenho a opção force_https ativada nas configurações do Discourse.

Estou correto ao assumir que o erro do Google indica que o Discourse está enviando o endereço http em vez do https para o redirecionamento, mesmo com force_https ativado? Existe alguma outra configuração que eu possa ativar para mudar isso?

Tentei adicionar a URL http à configuração do cliente no Google, e isso me permitiu chegar ao ponto de selecionar uma conta do Google e autorizar, mas, ao redirecionar de volta para o meu site, aparece a mensagem: “Desculpe, ocorreu um erro ao autorizar sua conta. Talvez você não tenha aprovado a autorização?”. O log de erro contém este erro: “(google_oauth2) Falha na autenticação! csrf_detected: OmniAuth::Strategies::OAuth2::CallbackError, csrf_detected | CSRF detected”. Parece que a autenticação do Google está marcando o redirecionamento do endereço http de volta para o http como uma tentativa de falsificação.

Estou vendo um erro semelhante no log da autenticação do GitHub, (redirect_uri_mismatch), então parece que também está enviando o endereço http para o redirecionamento da API lá.

Alguma sugestão?

Resolvido! :joy: :man_dancing:

Caso alguém mais enfrente esse problema, encontrei a solução aqui: [HELP] Cannot login, error shows "BAD CSRF" - #25 by daxen

Adicionei isso:

RequestHeader set X-Forwarded-Proto "https"

à configuração do vhost para o site SSL, para que o cabeçalho X-Forwarded-Proto seja repassado ao Discourse.