Question Comment sécuriser le port 80 d'Apache?


J'ai un serveur Apache sur un VPS distant. Je n'ai que les ports 80 et 443 ouverts. J'utilise actuellement le port 443 pour SSH et 80 pour HTTP.

Je veux que le port 80 utilise HTTPS et non HTTP. Toutes les solutions que j'ai vues consistaient à rediriger HTTP vers HTTPS comme ceci:

Redirect permanent / https://mywebsite.com/

mais je ne pense pas que cela fonctionnera.


4
2018-01-26 13:40


origine


Avez-vous la possibilité de changer votre port SSH? Par exemple, utiliser 80 pour SSH et 443 pour HTTPS? - Laurent
Oui pas de problème. Je veux juste SSH et HTTPS. ne vous souciez pas des ports. - Yousf
En fait, pourquoi ne pas simplement fermer le port 80? - Hagen von Eitzen


Réponses:


Cela ne fonctionnera pas si vous conservez ssh sur le port 443, mais si vous déplacez ceci vers un autre port, cela fonctionnera.

Bien sûr, vous pouvez configurer Apache pour utiliser HTTPS sur le port 80, mais cela signifierait que vos utilisateurs devront spécifier explicitement le port à utiliser, comme https://www.example.com:80/votrefichier.html normalement, le navigateur s'attend à parler de http sur les ports 80 et https sur le port 443. De plus, les utilisateurs peuvent rencontrer des problèmes avec les pare-feu qui émettent la même hypothèse et bloquent https sur le port 80.


6
2018-01-26 13:48





Si vous définissez HTTPS sur le port 80, la plupart des navigateurs Web seront endommagés. HTTPS devrait être sur 443. Si quelqu'un veut aller à "HTTPS://example.com"; cela ne fonctionnerait pas; de même s'ils allaient à"HTTP://example.com"ça ne marcherait pas non plus. Seulement s'ils allaient à"HTTPS://example.com:80"Cela fonctionnerait-il. Par conséquent, ce pourrait être par choix de conception que cette configuration soit rejetée.


3
2018-01-26 13:47



Re "casser les navigateurs Web"? Non, comme liens vers HTTPS://example.com:80/thepage fonctionnerait toujours - Pacerier


Changez votre port SSH en quelque chose d'autre. Honnêtement, je garde le mien à la valeur par défaut 22 - Je ne trouve aucune raison de changer cela, même si beaucoup de gens le recommandent. Il est difficile de déterminer le port SSH si vous le changez, mais ce n'est pas impossible.

De plus, vous devez servir Apache sur 80 (http) et Apache SSL sur 443 (HTTPS). Si vous souhaitez forcer la redirection HTTP -> HTTPS en configurant une redirection côté Apache, toutefois, si vous n'essayez pas de forcer http-> https, vous devez simplement vous assurer que SSL est configuré et activé sur Apache. (Aucune redirection requise si vous ne forcez pas http -> https).

Ports par défaut:

22 -> SSH
80 -> HTTP
443 -> HTTPS

Recommandation:
Ne jamais configurer un service pour utiliser un bien connu port d'un autre service.


1
2018-01-26 14:55





Configurez simplement un hôte virtuel pour gérer toutes les demandes entrantes provenant du port 80. Comme ça:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html

    SSLEngine on
    SSLCertificateFile      /etc/apache2/pathtocert/Cert
    SSLCertificateKeyFile   /etc/apache2/pathtoprivateKey/Privk

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Bien que cela interrompt les requêtes HTTP entrantes, cela sert votre objectif de sécuriser le port 80 (en rendant toute personne ayant tendance à y accéder de manière non sécurisée).

Remarque: La méthode de redirection exposera toujours vos utilisateurs à une attaque MITM.


1
2017-11-15 15:39