Vi alguns tutoriais que explicam como fazer isso, mas de maneiras diferentes, o que não me ajudou. Existe alguma forma de criar uma configuração de virtual host no Apache para o Discourse, de modo que um domínio específico seja redirecionado para o software, assim como ao adicionar outros sites e seus respectivos domínios?
Se você não está familiarizado com isso (e não quer se familiarizar), recomendo fortemente abandonar o Apache e rodar apenas o Discourse na VPS. Se precisar rodar mais coisas, adquira uma VPS para o Apache e outra para o Discourse.
Então, mudei para o Nginx e tudo está funcionando. Acredito que o SSL esteja configurado corretamente, mas no Chrome, aparece a mensagem “Sua conexão com este site não é totalmente segura”. O Forçar HTTPS está ativado.
O SSL está configurado com o serviço nginx dentro do contêiner. Se o contêiner for exposto à internet e você acessá-lo diretamente pelo navegador (instalação padrão do Discourse), você terá SSL.
Mas se você colocar um proxy reverso na frente dele (seja Apache, Nginx ou algum serviço de terceiros, como o Cloudflare), você precisará garantir que a conexão entre o navegador e o proxy reverso seja segura.
Portanto, no seu caso, você precisará gerar certificados para o proxy reverso nginx (não acho que seja necessário adicionar os modelos SSL do Discourse, pois o contêiner não está exposto diretamente à internet; você pode, mas não precisa).
Você pode verificar como fazer isso usando o Let’s Encrypt (gratuito, o mesmo usado na instalação padrão do Discourse, mas neste caso para o nginx fora do contêiner).
TL;DR O nginx que atua como proxy reverso precisa de SSL. O nginx que está dentro do contêiner não precisa de SSL (assumindo que você esteja acessando da mesma máquina).
(ou você pode expor outras portas, como 8080:80 e 8443:443, e, em vez de usar um socket na próxima etapa, redirecionar para um upstream que aponte para localhost:80 e/ou localhost:443)
Você precisa ter os arquivos de certificado SSL em /var/discourse/shared/standalone/ssl/. Você os possui? Estou assumindo que você já é dono do domínio a1rp.xyz e leu sobre como gerar certificados SSL no site do Let’s Encrypt. Além disso, lembre-se de que o Discourse gerencia a renovação dos certificados para você na instalação padrão, mas, no seu caso, você precisará lidar com isso (com um cronjob, por exemplo); caso contrário, seus certificados expirarão após 3 meses.
Sim, tenho tudo o que você mencionou fazer na configuração do app (incluindo a postagem corrigindo algumas coisas). Quanto aos dois pontos (:), não acho que faça diferença. Houve uma postagem dizendo que não deveria haver dois pontos ali também. Os arquivos SSL eu já tenho.
Então, eu resolvi o problema. Alguém mencionou que o favicon aparecia em http, e por isso o erro ocorreu. Fiz o upload de outra imagem e a excluí; agora o site está totalmente em https