web-dev-qa-db-fra.com

HTTP redirige-t-il automatiquement vers HTTPS?

Lorsque nous entrons une URL dans un navigateur, elle utilise HTTP par défaut, mais si le serveur ne prend en charge que HTTPS, le trafic est-il redirigé automatiquement vers https sans que l'utilisateur s'en rende compte?

Ai-je raison?

En cas d'erreur, veuillez me corriger.

22
kst

Non, pour le moment aucun navigateur majeur ne redirigerait automatiquement vers HTTPS.

Le site Web peut définir en-tête HSTS pour indiquer aux navigateurs qu'ils doivent rediriger automatiquement vers HTTPS pour les demandes futures, ou ils peuvent s'inscrire dans la liste de préchargement HSTS , et les utilisateurs peuvent installer des plugins de navigateur pour toujours charger HTTPS basé sur une liste blanche ou même pour toujours essayer HTTPS en premier . Tous ces éléments sont opt-in, soit le site Web ou l'utilisateur doit faire quelque chose pour que le navigateur le fasse. Dans sa configuration par défaut, sans action explicite de l'utilisateur ou du site Web, aucun navigateur majeur n'utiliserait automatiquement HTTPS.

53
Lie Ryan

Non.

Vous devez explicitement rediriger le trafic HTTP vers HTTPS, ce qui implique de configurer votre serveur Web avec une règle qui renvoie HTTP 301 code d'état et un en-tête d'emplacement commençant par https://.

Ainsi, par exemple, dans Nginx, vous écririez quelque chose comme:

server {
       listen         80;
       server_name    my.domain.com;
       return         301 https://$server_name$request_uri;
}

De plus, vous pouvez ajouter un en-tête Http Strict Transport Security (HSTS) aux réponses des demandes que vous recevez sur le port HTTPS. Cela garantira que le navigateur envoie toutes les demandes suivantes au port HTTPS.

Encore une fois, dans Nginx, vous feriez ceci:

server {
       listen         443 ssl;
       server_name    my.domain.com;
       add_header Strict-Transport-Security "max-age=31536000"; 
}
17
user90696

Certains sites Web utilisent [~ # ~] hsts [~ # ~] ( https://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security ) qui font essentiellement ce que vous dites. Si un utilisateur essaie d'accéder à certains --- http://example.com , HSTS transformera la demande en https://example.com , cependant le site Web doit avoir un certificat valide afin de fonctionner correctement.

2
lapinousexy