Le site Web ne redirige pas vers https

Bonjour,

Lorsque je tape par exemple “thenameofmywebsite.com” dans le navigateur, cela ne redirige pas automatiquement vers le protocole sécurisé SSL https.

Où puis-je modifier cela pour Discourse ? Merci.

Discord est un produit différent ; je suppose que vous voulez dire Discourse.

Comment avez-vous configuré SSL ? Comment cette instance a-t-elle été installée ?

Si vous avez suivi le guide standard, la redirection HTTPS fonctionne par défaut, ce qui suggère soit que vous avez utilisé une méthode d’installation différente, soit que vous avez modifié la configuration après l’installation.

Désolé, une faute de frappe.

Voici mon fichier discourse.conf

server {

    if ($host = wolcengame.net) {
        return 301 https://$host$request_uri;
    } # géré par Certbot

    listen 80;
    listen [::]:80;
    server_name wolcengame.net www.wolcengame.net; 
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name wolcengame.net www.wolcengame.net;

Il y a donc une différence entre https://wolcengame.net et www.wolcengame.net. Le premier lien fonctionne et charge la page, mais lorsque je clique sur le second, il devient https://www.wolcengame.net et l’écran reste noir, rien ne se charge.

Je ne sais pas ce qui ne va pas et comment corriger cela.

Supprimez cette partie, puis redémarrez nginx, et cela devrait fonctionner correctement.

Je ne pense pas que quoi que ce soit ait changé. Le problème persiste. Une autre idée ?

Cette configuration peut être modifiée de plusieurs façons.

  1. Définir uniquement la redirection HTTPS vers le domaine que vous préférez
  2. Configurer une redirection de non-www vers www (ou l’inverse)
  3. Vérifier que vous avez le nom d’hôte Discourse correct dans le fichier yml

Bonjour Bhanu,

  1. HTTPS est configuré pour mon domaine (comme vous l’avez déjà remarqué grâce aux liens fournis vers mon site web).
  2. La redirection de www vers non-www est configurée, comme vous l’avez déjà constaté dans le code que j’ai fourni.
  3. Le nom d’hôte Discourse dans le fichier yml est correct, comme vous l’avez remarqué puisque mon site web est opérationnel.

DISCOURSE_HOSTNAME: wolcengame.net

J’ai un autre site web avec la même configuration que mon discourse.conf, et je ne rencontre pas de problème similaire là-bas.

Ma question est la suivante : y a-t-il quelque chose dans Discourse qui interfère avec la redirection nginx ? J’ai tout essayé hier et je n’ai plus d’idées pour résoudre ce problème.

Il s’agit de mon deuxième site web : www.koktailmolotov.com. Comme vous pouvez le voir, si vous cliquez sur le site, il redirige automatiquement vers le format https://koktailmolotov.com. Les paramètres de configuration sont identiques à ceux de mon site Discourse.

Ce n’est pas possible, car tout le trafic est géré par un nginx externe. Je suppose ici que vous exécutez Discourse avec un modèle en socket et que le proxy nginx externe gère tout le trafic.

Si vous pouvez publier la configuration nginx pour Discourse, je pourrai peut-être vous aider à identifier le problème.

Voici l’intégralité de la configuration nginx de discourse.conf à ce jour :

server {

listen 80;
listen [::]:80;
server_name www.wolcengame.net;
return 301 $scheme://wolcengame.net$request_uri;

}

server {

listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name wolcengame.net www.wolcengame.net;

ssl on;
ssl_certificate /etc/letsencrypt/live/wolcengame.net/fullchain.pem; # géré par Certbot
ssl_certificate_key /etc/letsencrypt/live/wolcengame.net/privkey.pem; # géré par Certbot
ssl_dhparam /etc/letsencrypt/live/wolcengame.net/dhparams.pem;
include /etc/nginx/snippets/ssl.conf;

http2_idle_timeout 5m; # augmenté par rapport au défaut de 3m

location / {
    proxy_pass http://unix:/var/discourse/shared/standalone/nginx.http.sock;
    proxy_set_header Host $http_host;
    proxy_http_version 1.1;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto https;
    proxy_set_header X-Real-IP $remote_addr;

}

}

Remplacez ceci par

return 301 https://wolcengame.net$request_uri;

Supprimez www.wolcengame.net de cette ligne

et créez un bloc séparé comme suit

listen 443 ssl;
listen [::]:443 ssl;
server_name www.wolcengame.net;
ssl_certificate /etc/letsencrypt/live/wolcengame.net/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/wolcengame.net/privkey.pem; 
return 301 https://wolcengame.net$request_uri;

Pour être clair, ce n’est absolument pas un problème lié à Discourse.

Discourse ne peut fonctionner que sous un seul nom de domaine complet (FQDN). Le problème vient du fait que vous aviez configuré deux domaines et que vos redirections n’étaient pas correctement paramétrées. Les solutions à ces deux problèmes ont déjà été abordées dans d’autres sujets.

Vous êtes un génie, cela a résolu le problème. Merci beaucoup.