255 votes

Est-il mauvais de rediriger http vers https ?

Je viens d'installer un certificat SSL sur mon serveur.

Il a ensuite mis en place une redirection pour tout le trafic de mon domaine sur le port 80 pour le rediriger vers le port 443.

En d'autres termes, tous mes http://example.com le trafic est maintenant redirigé vers le site approprié https://example.com version de la page.

La redirection est effectuée dans mon fichier de serveurs virtuels Apache avec quelque chose comme ceci...

RewriteEngine on
ReWriteCond %{SERVER_PORT} !^443$
RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L] 

Ma question est la suivante : y a-t-il des inconvénients à utiliser SSL ?

Puisqu'il ne s'agit pas d'une redirection 301, est-ce que je perdrai du jus de lien/du classement dans les moteurs de recherche en changeant pour https ?

Je vous remercie de votre aide. J'ai toujours voulu configurer SSL sur un serveur, juste pour le plaisir de le faire, et j'ai finalement décidé de le faire ce soir. Cela semble bien fonctionner jusqu'à présent, mais je ne suis pas sûr que ce soit une bonne idée de l'utiliser sur chaque page. Mon site n'est pas un site de commerce électronique et ne traite pas de données sensibles ; c'est surtout pour l'apparence et le plaisir de l'installer pour apprendre.


NUMÉRO ACTUALISÉ

Bizarrement, Bing crée cette capture d'écran à partir de mon site maintenant qu'il utilise HTTPS partout...

enter image description here

15 votes

[WTF - Je ne peux pas ajouter de réponse (bien qu'il me semble que j'ai assez de représentants)] Ma réponse serait (en partie) que PARFOIS, C'EST MAUVAIS . Envisagez de passer un COOKIE ou une clé API dans un GET sur HTTP. Si votre site redirige les requêtes HTTP vers des requêtes HTTPS, ces appels fonctionneront, mais le COOKIE ou la clé API seront transmis en clair - exposés. Certaines API désactivent le protocole HTTP, une approche plus robuste - pas de protocole HTTP du tout, de sorte que vous ne pouvez même pas le faire fonctionner si vous n'utilisez pas le protocole HTTPS. Exemple : "Toutes les demandes d'API doivent être effectuées via HTTPS. Les appels effectués en HTTP simple échoueront" de stripe.com/docs/api?lang=php#authentication

9 votes

@codingoutloud - l'alternative est que la tout cela se fait par HTTP, sans HTTPS. En quoi est-ce mieux ?

1 votes

J'ai vu des sites qui mettent en place un site sur http disant que ce site doit être accédé par SSL et qui fournissent un lien avec la partie https://.

321voto

Shlomi Fish Points 1951

En [R]  en soi est un 302 redirection ( Moved Temporarily ). Si vous voulez vraiment que les gens utilisent la version HTTPS de votre site (indice : vous le voulez), alors vous devriez utiliser [R=301] pour une redirection permanente :

RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R=301,L] 

A 301 conserve tout votre google-fu et vos pageranks durement gagnés. intact . Assurez-vous que mod_rewrite est activé :

a2enmod rewrite

Pour répondre à votre question exacte :

Est-il mauvais de rediriger http vers https ?

Pas du tout. C'est très bon.

51voto

Mohamed Sadek Points 21

Bien que je sois favorable à l'idée de sites SSL uniquement, je dirais que l'inconvénient réside dans les frais généraux qui dépendent de la conception du site. Je veux dire par exemple que si vous servez beaucoup d'images individuelles dans des balises img, cela peut ralentir considérablement le fonctionnement de votre site. Je conseillerais à toute personne utilisant des serveurs SSL uniquement de s'assurer qu'elle travaille sur les points suivants.

  1. Vérifiez l'ensemble du site pour les liens internes et assurez-vous qu'ils utilisent tous HTTPS si vous spécifiez votre propre nom de domaine dans les liens, afin de ne pas provoquer vos propres redirections.
  2. Mettez à jour votre <meta property="og:url" pour utiliser la version https de votre domaine.
  3. Si vous utilisez <base href= mettre à nouveau à jour pour utiliser HTTPS.
  4. Installer Protocole SPDY si possible
  5. Veillez à utiliser des sprites d'image CSS lorsque cela est possible, afin de réduire le nombre de requêtes.
  6. Mettez à jour vos sitemaps pour indiquer le statut https, afin que les araignées apprennent ce changement au fil du temps.
  7. Modifiez les préférences des moteurs de recherche, comme Google Webmaster Tools, pour qu'ils préfèrent les HTTPS.
  8. Dans la mesure du possible, déchargez tout média statique sur des serveurs CDN HTTPS.

Si ce qui précède est pris en compte, je doute que vous ayez beaucoup de problèmes.

38voto

Dwain Dorfus Points 11

Si vous avez mis en place le protocole https, vous devez l'utiliser partout sur le site. Vous éviterez le risque de problèmes de contenu mixte et si vous disposez des outils nécessaires, pourquoi ne pas sécuriser l'ensemble du site ?

En ce qui concerne la redirection de http vers https, la réponse n'est pas aussi simple.

La redirection facilitera grandement la tâche de vos utilisateurs. Il leur suffira de taper whateversite.com pour être redirigés vers https.

Mais. Que se passe-t-il si l'utilisateur se trouve parfois sur un réseau non sécurisé (ou est proche de Troy Hunt et son ananas ) ? L'utilisateur demandera alors http://whateversite.com par vieille habitude. C'est le http. Cela peut être compromis. La redirection pourrait pointer vers https://whateversite.com.some.infrastructure.long.strange.url.hacker.org . Pour un utilisateur ordinaire, cela semblerait tout à fait légitime. Mais le trafic peut être intercepté.

Nous avons donc deux exigences contradictoires ici : être facile à utiliser et être sécurisé. Heureusement, il existe un remède appelé En-tête HSTS . Avec lui, vous pouvez activer la redirection. Le navigateur se déplacera vers le site sécurisé, mais grâce à l'en-tête HSTS, il s'en souviendra également. Lorsque l'utilisateur tape whateversite.com sur ce réseau non sécurisé, le navigateur passe immédiatement à https, sans passer par la redirection sur http. À moins que vous ne traitiez des données très sensibles, je pense que c'est un bon compromis entre sécurité et convivialité pour la plupart des sites. (Lorsque j'ai récemment mis en place une application traitant des dossiers médicaux, je suis passé en https sans redirection). Malheureusement, Internet Explorer ne prend pas en charge le HSTS ( source ). Par conséquent, si votre public cible utilise principalement IE et que les données sont sensibles, il est préférable de désactiver les redirections.

Donc, si vous ne ciblez pas les utilisateurs d'IE, utilisez la redirection, mais activez également l'en-tête HSTS.

21voto

Nogeay Points 31

Il n'y a rien de mal à cela, et c'est même la meilleure pratique (pour les sites qui debe être servie par une connexion sécurisée). En fait, ce que vous faites est assez similaire à la configuration que j'utilise :

<VirtualHost 10.2.3.40:80>
  ServerAdmin me@example.com
  ServerName secure.example.com
  RedirectMatch 301 (.*) https://secure.example.com$1
</VirtualHost>

# Insert 10.2.3.40:443 virtual host here :)

En 301 Le code de statut indique un permanent rediriger, en indiquant aux clients capables d'utiliser l'URL sécurisée pour les futures connexions (par exemple, mettre à jour le signet).

Si vous n'avez l'intention de servir le site qu'avec TLS/SSL, je recommande d'ajouter une directive supplémentaire pour activer HTTP Sécurité stricte des transports (HSTS) dans votre sécurisé hôte virtuel :

<IfModule mod_headers.c>
  Header set Strict-Transport-Security "max-age=1234; includeSubdomains"
</IfModule>

Cet en-tête indique aux clients compétents (la plupart de nos jours, je crois) qu'ils doivent utiliser uniquement HTTPS avec le domaine fourni ( secure.example.com dans ce cas) pour le prochain 1234 secondes. Le site ; includeSubdomains la partie est en option et indique que la directive s'applique non seulement au domaine actuel, mais aussi à tous ceux qui lui sont subordonnés (par ex. alpha.secure.example.com ). Notez que l'en-tête HSTS est nur acceptés par les navigateurs lorsqu'ils sont servis via une connexion SSL/TLS !

Pour tester votre configuration de serveur par rapport aux meilleures pratiques actuelles, une bonne ressource gratuite est la suivante Test de serveur SSL de Qualys Je viserais à obtenir au moins un A- (vous ne pouvez pas obtenir plus que cela avec Apache 2.2 en raison de l'absence de support pour la cryptographie à courbe elliptique).

5voto

krisFR Points 12580

Wow ! rediriger HTTP vers HTTPS est une très bonne chose et je ne vois aucun inconvénient à cela.

Assurez-vous simplement que vos clients disposent de la bonne autorité de certification pour éviter les avertissements non conviviaux concernant le certificat dans le navigateur.

En outre, la façon dont vous avez configuré Apache pour rediriger vers HTTPS semble correcte.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X