Contenu | Rechercher | Menus

Annonce

Ubuntu-fr vend de superbes t-shirts et de belles clés USB 32Go
Rendez-vous sur la boutique En Vente Libre

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 19/10/2019, à 23:18

mikmer

Redirection http > https multiports

Bonjour,
Après avoir épluché je ne sais combien de forums, je suis un peu bloqué :
J'ai une adresse une serveur sur lequel j'arrive par l'url http://xxx.freeboxos.fr ou https://xxx.freeboxos.fr
Les 2 fonctionnent parfaitement et arrivent sur un blog WordPress.

J'ai ajouté un cloud Nextcloud sur lequel je veux arriver par http://xxx.freeboxos.fr:8080 ou https://xxx.freeboxos.fr:8443
L'accès en https fonctionne.
L'accès en http me renvoie une erreur SSL_ERROR_RX_RECORD_TOO_LONG et j'ai dans la barre d'adresse : https://xxx.freeboxos.fr:8080, comme s'il y avait un problème de redirection de port

Voila le VirtualHost

Listen *:8080
<VirtualHost *:8080>
   DocumentRoot /var/www/html/nextcloud/
   ServerName xxx.freeboxos.fr
   Redirect permanent / https://xxx.freeboxos.fr:8443
   TransferLog /var/log/apache2/nextcloud_access.log
   ErrorLog /var/log/apache2/nextcloud_error.log
</VirtualHost>

Listen *:8443
<VirtualHost *:8443>
   DocumentRoot /var/www/html/nextcloud/
   ServerName xxx.freeboxos.fr
   <IfModule mod_headers.c>
      Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"
   </IfModule>
   <Directory "/var/www/html/nextcloud">
      Options -Indexes +MultiViews +FollowSymlinks
      AllowOverride All
      Order allow,deny
      Allow from all
   </Directory>
   TransferLog /var/log/apache2/nextcloud_access.log
   ErrorLog /var/log/apache2/nextcloud_error.log
   SSLCertificateFile /etc/letsencrypt/live/xxx.freeboxos.fr/fullchain.pem
   SSLCertificateKeyFile /etc/letsencrypt/live/xxx.freeboxos.fr/privkey.pem
   Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>

J'ai aussi ajouté un forum phpBB sur lequel je veux arriver par http://xxx.freeboxos.fr:8081 ou https://xxx.freeboxos.fr:8444
J'ai exactement le même pb : OK en https, mais pas OK en http

Listen *:8081
<VirtualHost *:8081>
   DocumentRoot /var/www/html/phpBB3/
   ServerName xxx.freeboxos.fr
   Redirect permanent / https://xxx.freeboxos.fr:8444
   TransferLog /var/log/apache2/phpBB_access.log
   ErrorLog /var/log/apache2/phpBB_error.log
</VirtualHost>

Listen *:8444
<IfModule mod_ssl.c>
<VirtualHost *:8444>
   DocumentRoot /var/www/html/phpBB3/
   ServerName xxx.freeboxos.fr
   <IfModule mod_headers.c>
      Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"
   </IfModule>
   <Directory "/var/www/html/phpBB3">
      Options -Indexes +MultiViews +FollowSymlinks
      AllowOverride All
      Order allow,deny
      Allow from all
   </Directory>
   TransferLog /var/log/apache2/phpBB_access.log
   ErrorLog /var/log/apache2/phpBB_error.log
   SSLCertificateFile /etc/letsencrypt/live/xxx.freeboxos.fr/fullchain.pem
   SSLCertificateKeyFile /etc/letsencrypt/live/xxx.freeboxos.fr/privkey.pem
   Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>

Voila aussi pour info le VirtualHost pour les ports par défaut (accès http et redirection https OK)

<VirtualHost *:80>
  DocumentRoot /var/www/wordpress/
  ServerName xxx.freeboxos.fr
  Redirect permanent / https://xxx.freeboxos.fr:443
</VirtualHost>

<VirtualHost *:443>
   DocumentRoot /var/www/wordpress/
   ServerName xxx.freeboxos.fr
   <IfModule mod_headers.c>
   Header always set Strict-Transport-Security "max-age=15552000; include subDomains; preload"
   <Directory /var/www/wordpress>
      AllowOverride All
      Require all granted
   </Directory>
   ErrorLog /var/log/apache2/error.wordpress.log
   CustomLog /var/log/apache2/access.wordpress.log combined
   SSLCertificateFile /etc/letsencrypt/live/xxx.freeboxos.fr/fullchain.pem
   SSLCertificateKeyFile /etc/letsencrypt/live/xxx.freeboxos.fr/privkey.pem
   Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>

Je sèche... et vu que c'est de l'expérimental, je voudrais aussi ajouter un wiki sur le 8082 / 8445 smile

Dernière modification par mikmer (Le 19/10/2019, à 23:21)

Hors ligne

#2 Le 19/10/2019, à 23:56

mikmer

Re : Redirection http > https multiports

Pour compléter le tout une bizarrerie :
Lorsque je supprime les cookies, le premier accès sur le 8080 ou 8081 en http fonctionne et me renvoie respectivement en https:...8443 ou https:...8444
En revanche lorsque je tente un deuxième accès, ça ne fonctionne plus...

Je suis sur firefox mais c'est idem avec chrome

Hors ligne

#3 Le 20/10/2019, à 10:37

bruno

Re : Redirection http > https multiports

Bonjour,

C'est une situation tordue et difficile à déboguer. Il serait beaucoup plus simple d'avoir un nom de domaine différent pour chaque service et d'être en écoute uniquement sur les ports standards 80 et 433. Un nom de domaine ne coûte que quelques euros par an et cela t'évitera bien des complications.

En attendant avec :

Listen 8081 http
…
Redirect permanent / https://xxx.freeboxos.fr:8444/
…
Listen 8444 https

Cela devrait fonctionner.
Il faut spécifier le protocole quand on travaille avec des ports non standards et le / terminal dans la redirection est important.

Pense à redémarre apache après modification et surtout à bien utiliser un navigateur web dont le cache et l'historique ont été complètement vidés pour tester (les fenêtres de navigation privée de Firefox sont pratiques pour cela).

Dernière modification par bruno (Le 20/10/2019, à 10:39)

Hors ligne

#4 Le 20/10/2019, à 10:49

mikmer

Re : Redirection http > https multiports

Merci, oui bien entendu avec des noms de domaine, c'est sans doute plus simple, mais là je fais juste de l'expérimentation...

J'ai ajouté le / après le 8443 & 8444 de redirect permanent par acquis de conscience et relancé apache, mais c'est malheureusement pareil !

Après effacement cookies:
- 1ère connexion sur http://xxx.freeboxos.fr/8080 = OK je suis bien redirigé sur https://xxx.freeboxos.fr/8443
- 2ème tentative de connexion = erreur SSL_ERROR_RX_RECORD_TOO_LONG et j'ai dans la barre d'adresse : https://xxx.freeboxos.fr:8080

Je bute là dessus depuis hier après midi :(

Dernière modification par mikmer (Le 20/10/2019, à 10:50)

Hors ligne

#5 Le 20/10/2019, à 12:40

bruno

Re : Redirection http > https multiports

Ok je pense que c'est lié au navigateur. Les navigateurs récents sont conçus pour privilégier le HTTPS et une fois mémorisé le fait que http://xxx.freeboxos.fr:8080 est redirigé en HTTPS, le navigateur redirige automatiquement vers https://xxx.freeboxos.fr:8080 (surtout avec les en-têtes HSTS).
Tu peux tenter en utilisant des réécritures (rewrite) à la place des redirections mais je pense que le problème sera exactement le même.
Plutôt que de te casser la tête avec des hôtes virtuels sur des ports différents, utilises des noms de domaines avec des services gratuits comme no-ip.com

Dernière modification par bruno (Le 20/10/2019, à 12:42)

Hors ligne

#6 Le 20/10/2019, à 13:30

mikmer

Re : Redirection http > https multiports

C'est effectivement probablement un problème de cookie puisque la 1ère connexion fonctionne...

Ce qui est étonnant c'est que sur les ports standards (80 / 443), ca fonctionne tout le temps... (3ème VirtualHost de mon post initial)
J'ai essayé de lisser les différences, c'est à dire :
- d'ajouter preload dans la ligne Header HSTS
- de mettre un contenu identique de celui qui fonctionne pour le contenu <directory> ... <>directory>
mais toujours le même résultat...

Hors ligne

#7 Le 20/10/2019, à 14:10

bruno

Re : Redirection http > https multiports

De toute façon, vu que utilise des ports non standards, les hôtes virtuels en http sur les port 8080, 8081, etc ne servent pas à grand chose…

Hors ligne

#8 Le 20/10/2019, à 14:20

mikmer

Re : Redirection http > https multiports

bruno a écrit :

De toute façon, vu que utilise des ports non standards, les hôtes virtuels en http sur les port 8080, 8081, etc ne servent pas à grand chose…

Ben si... Si je tape :

Idem en https... Si je tape :

Hors ligne

#9 Le 20/10/2019, à 14:30

bruno

Re : Redirection http > https multiports

Je reformule. Puisque tu es obligé de saisir un numéro de port, tes hôtes virtuels en HTTP sur des ports non standard ne servent à rien.
Ce serait peut-être plus judicieux d'avoir un hôte par défaut qui répond uniquement sur les ports standards avec des URL du type (à gérer avec Alias ou <Location …>) :
https://xxxx.freeboxos.fr/nextcloud
https://xxxx.freeboxos.fr/forum
etc.

Hors ligne

#10 Le 20/10/2019, à 16:45

mikmer

Re : Redirection http > https multiports

OK merci, je comprends le concept...

Je vais voir si j'arrive à mettre ça en oeuvre...

Après un ou deux essais, je rame un peu smile

Hors ligne

#11 Le 20/10/2019, à 18:12

airvb

Re : Redirection http > https multiports

Bsr ,
J'ai un serveur sur lequel tourne différents trucs sur des ports autres que 80 et 443
Pour accéder depuis l’extérieur au serveur:8080 j'ai trouvé cette solution , appliquée un peu à l'arrach mais cela fonctionne.
C'est une histoire de proxy, m'en demande pas plus ... j'ai bricolé sans trop comprendre smile 

Avant de mettre en place je me suis servi de ddns.net qui te permet gratuitement d'avoir jusqu' à 3 noms de domaines différents pour faire les essais
Suivant l'exemple ci dessous , il faut avoir un tata.ddns.net et toto-tata.ddns.net

vhost du serveur 8080 nomme 001.toto.conf

<IfModule proxy_module>
<VirtualHost *:80>
        ServerName toto-tata.ddns.net
        Redirect permanent / https://toto-tata.ddns.net
</VirtualHost>

<IfModule ssl_module>
<VirtualHost *:443>
        ServerName toto-tata.ddns.net
        ProxyPass "/" "http://localhost:8080/SERVEUR/"    [b] ### adresse local du serveur[/b]
        ProxyPassReverse "/" "http://localhost:8080/SERVEUR/"
        ProxyPassReverseCookieDomain "tata.ddns.net" "toto-tata.ddns.net"
        ProxyPassReverseCookiePath "/" "/SERVEUR/"

        ErrorLog /var/log/apache2/toto_error.log
        CustomLog /var/log/apache2/toto_combined.log combined
        <IfModule log_config_module>
                TransferLog /var/log/apache2/toto_access.log
        </IfModule>

        SSLEngine on
        SSLProtocol ALL -SSLv3 -TLSv1 -TLSv1.1
        SSLCipherSuite ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256
        SSLCompression Off
        SSLSessionTickets Off
        SSLHonorCipherOrder On
        # OCSP Stapling, only in httpd 2.3.3 and later
        SSLUseStapling On
        SSLStaplingResponderTimeout 5
        SSLStaplingReturnResponderErrors Off
        # HSTS (mod_headers is required) (15768000 seconds = 6 months)
        Header always set Strict-Transport-Security "max-age=15768000"
        SSLUseStapling on			
        ## SSL Protocol Adjustments
        <IfModule setenvif_module>
                BrowserMatch ".*MSIE.*" \
                        nokeepalive ssl-unclean-shutdown \
                        downgrade-1.0 force-response-1.0
        </IfModule>

        ## Per-Server Logging:
        # The home of a custom SSL log file. Use this when you want a compact
        # non-error SSL logfile on a virtual host basis.
        <IfModule log_config_module>
                CustomLog /var/log/apache2/toto_request.log \
                        "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
        </IfModule>

SSLCertificateFile /etc/letsencrypt/xxxxx/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/lxxxxx/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf

</VirtualHost>
</IfModule>
</IfModule>

Pour aller ds le même sens que les contributions précédentes, ma configuration est beaucoup,beaucoup plus simple depuis que j'ai un nom de domaine.

@+

Hors ligne

#12 Le 20/10/2019, à 18:47

mikmer

Re : Redirection http > https multiports

Merci airvb...

Je me suis lancé sur la piste de Bruno...

Du coup je n'ai plus qu'un seul fichier de VirtualHost et ça fonctionne en http et en https. Toutes les adresses en http renvoient sur le https.
    http://xxx.freeboxos.fr > j'arrive sur le blog WordPress (ou https)
    http://xxx.freeboxos.fr/nextcloudmm > j'arrive sur le NextCloud (ou https)
    http://xxx.freeboxos.fr/phpbbmm > j'arrive sur le Forum phpBB (ou https)

L'inconvénient que je vois est qu'il n'y a qu'un fichier de log, ce qui rend éventuellement l'exploitation de ceux-ci un peu plus difficile... Mais comme c'est de l'expérimental, il n'y a pas mort d'homme smile

Voila le fichier de conf si ça peut servir à quelqu'un :

<VirtualHost *:80>
  DocumentRoot /var/www/wordpress/
  ServerName xxx.freeboxos.fr
  Redirect permanent / https://xxx.freeboxos.fr:443
</VirtualHost>

<VirtualHost *:443>
   DocumentRoot /var/www/wordpress/

   ServerName xxx.freeboxos.fr

   Alias /nextcloudmm /var/www/html/nextcloud
   Alias /phpbbmm /var/www/html/phpBB3

   <IfModule mod_headers.c>
     Header always set Strict-Transport-Security "max-age=15552000; include subDomains; preload"
   </IfModule>

   <Directory "/var/www/wordpress">
      AllowOverride All
      Require all granted
   </Directory>

   <Directory "/var/www/html/nextcloud">
      Options -Indexes +MultiViews +FollowSymlinks
      AllowOverride All
      Order allow,deny
      Allow from all
   </Directory>

   <Directory "/var/www/html/phpBB3">
      Options -Indexes +MultiViews +FollowSymlinks
      AllowOverride All
      Order allow,deny
      Allow from all
   </Directory>

   ErrorLog /var/log/apache2/xxx_error.log
   CustomLog /var/log/apache2/xxx_access.log combined

   SSLCertificateFile /etc/letsencrypt/live/xxx.freeboxos.fr/fullchain.pem
   SSLCertificateKeyFile /etc/letsencrypt/live/xxx.freeboxos.fr/privkey.pem

   Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>

Prochaine étape : installation d'un wiki !

Je me demande quoi y mettre après smile

Hors ligne