Taper l'URL de mon serveur au lieu de son IP publique

Résolu/Fermé
LEVINE Messages postés 128 Date d'inscription jeudi 9 février 2006 Statut Membre Dernière intervention 25 février 2024 - Modifié le 1 juin 2023 à 14:41
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 - 31 mai 2023 à 21:53

Bonjour à tous :)

C'est un serveur Apache owncloud. J'utilise un sous-domaine.

Il est en dur, chez moi. La box redirige le port 80 net le 443 vers le serveur (indispensable pour Letsencrypt). Pour l'instant, je le remonte en HTTP.

Problème  : seul le serveur peut se loguer à l'URL msrv.**fr, (j'ignore si l'on a le droit de donner l'URL complète)  l'IP locale de la bécane, et l'IP publique du serveur. Les autres postes : non. Seulement l'IP publique.

Côté serveur : le ping sur l'URL du sous-domaine me retourne l'IP locale du serveur.

Les autre postes ne peuvent même pas recevoir l'IP publique du serveur : "Aucune adresse associée à ce nom d'hôte".

Owncloud client fonctionne... mais à l' IP publique et non l'URL du sous-domaine.

Les autres postes chez moi ne peuvent avoir accès au login de owncloud qu'en utilisant son IP publique : pas l' URL du sous-domaine. Même Tor (j'ai tenté le truc) arrive sur l'interface de login de owncloud (à condition de le forcer à accepter une URL en HHTP, bien sûr).

Fichier /etc/hosts du serveur :

127.0.0.1    localhost

IP publique   sous-domaine.fr
IP locale    sous-domaine.fr
IP locale    1150-SRV.domaineprincpal.fr    1150-SRV

# The following lines are desirable for IPv6 capable hosts
# Les lignes suivantes sont souhaitables pour les hôtes compatibles IPv6

::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Auriez-vous une piste ? 9a fait un moment que je galère ;)

Merci

7 réponses

avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 504
29 mai 2023 à 15:03

Bonjour,

Les modifications faites dans le fichier /etc/hosts n'affectent que le système concerné. Donc c'est normal que seul la machine 1150-SRV puisse résoudre sous-domaine.fr par l'IP.

Si tu veux que ça fonctionne pour d'autres machines, que ça soit les autres postes de ton réseau local ou des personnes à l'extérieur, il faut configurer l'entrée A sur les DNS publiques de ton domaine.

Attention à ça : https://en.wikipedia.org/wiki/Network_address_translation#NAT_hairpinning

0
LEVINE Messages postés 128 Date d'inscription jeudi 9 février 2006 Statut Membre Dernière intervention 25 février 2024 4
Modifié le 29 mai 2023 à 16:21

Bonjour, Avion.

1/ Donc, il n'y aurait pas de problème  de configuration interne.

2/ Je vais regarder ça su mon domaine. Je crois bien qu'en l'ayant fait, une fois, le domaine principal... avait l'IP de ma box. Ca me dérangeait. Je vais voir. Je donne le retour.

Voici ce que ça donne, chez mon hébergeur :

0
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 504
29 mai 2023 à 17:04

Il n'y a aucune réponse sur ton IP publique 82.xx.xxx.xxx sur les ports 80 et 443. Il faut revoir la configuration de tes redirections de port ou pare-feu.

0
mamiemando Messages postés 33325 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 22 octobre 2024 7 799
Modifié le 29 mai 2023 à 20:54

Bonjour,

Ensuite, comme on te l'a déjà dit, /etc/hosts ne fait que préempter les résolutions DNS faites sur la machine où il est configuré. Il faut donc réserver ton nom de domaine avant d'espérer faire de l'HTTPS. Une fois le nom réserver, assure-toi que le nom de ton site est résolu pour pointer sur l'IP publique de ton serveur web. Si ton serveur web est hébergé sur un ordinateur connecté à Internet via un routeur, l'IP publique à utiliser est celle de ton routeur, et celui-ci doit rediriger les ports 80 et 443 vers l'IP locale de cet ordinateur.

Concernant letsencrypt, c'est normalement assez simple à mettre en œuvre. Les commandes suivantes devrait suffire, que le serveur apache écoute sur le port 80, 443, ou les deux.

Installation :

sudo apt update
sudo apt install certbot python3-certbot-apache
sudo a2enmod ssl
sudo systemctl restart apache2

Configuration : A ce stade, on ne configure que le vhost HTTP (pour l'HTTPS on verra ça plus tard). En admettant que ton site soit www.monsite.fr, tu peux créer le fichier /etc/apache2/sites-available/http.www.monsite.fr.conf ici inspirée de /usr/share/doc/wordpress/examples/apache.conf

<VirtualHost *:80>
   ServerName monsite.fr
   Redirect permanent / https://www.monsite.fr/
</VirtualHost>

<VirtualHost *:80>
   ServerName www.monsite.fr
   DocumentRoot /usr/share/wordpress
   Alias /wp-content "/var/lib/wordpress/wp-content"

   <Directory /usr/share/wordpress>
       Options FollowSymLinks
       AllowOverride Limit Options FileInfo
       DirectoryIndex index.php
       Require all granted
   </Directory>

   <Directory /var/lib/wordpress/wp-content>
       Options FollowSymLinks
       Require all granted
   </Directory>

    RewriteEngine on
    RewriteCond %{SERVER_NAME} =www.monsite.fr
    RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]
</VirtualHost>

Remarques :

  • Dans l'exemple ci-dessus, on suppose que le serveur web est un wordpress installé via les paquets debian.
  • Dans ce type d'installation, la partie "statique" (commune à toutes les wordpress) est stockée dans /usr/share/doc/wordpress et la partie spécifique à chaque site dans /var/lib/wordpress/wp-content

Une fois le vhost HTTP fonctionnel, on prépare le vhost HTTPS à l'aide de certbot (qui créera lui-même la configuration apache requise).

sudo certbot --apache

Bonne chance

0
LEVINE Messages postés 128 Date d'inscription jeudi 9 février 2006 Statut Membre Dernière intervention 25 février 2024 4
Modifié le 1 juin 2023 à 14:42

Bonjour.

@Avion : si, si : réponse au ping sur l'IP publique, et de partout. Mais pas le sous-domaine.

@mamiemando : oui, j'ai un nom de domaine et le serveur est configuré sur le sous-domaine.

Je vais revoir mon Vhost. Parce que la directive

Redirect permanent / https://www.monsite.fr/

... n'est pas supportée chez moi. Je donne le retour.

Merci à tous ;)

0
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 504
31 mai 2023 à 21:53

Bonjour,

Après nouvelle vérification, je réaffirme : aucune réponse sur ton IP 82.66.xxx.xxx sur les ports TCP 80 et 443. Je ne parle pas du ping, qui lui fonctionne bien. Je parle de l'établissement de la communication au niveau TCP, nécessaire avant de parler TLS ou HTTP.

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
LEVINE Messages postés 128 Date d'inscription jeudi 9 février 2006 Statut Membre Dernière intervention 25 février 2024 4
Modifié le 1 juin 2023 à 14:43

Pas pu éditer ma réponse :/

Le vhost modifié :

<VirtualHost *:80>

    ServerName www.msrv.brusses.fr
    ServerAlias www.msrv.brusses.fr  
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www/html/owncloud

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

</VirtualHost>

<Directory /var/www/>
       Options FollowSymLinks
       AllowOverride Limit Options FileInfo
       DirectoryIndex index.php
       Require all granted

       RewriteEngine on
       RewriteCond %{SERVER_NAME} =www.msrv.brusses.fr
       RewriteRule ^ http://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]
       
       AllowOverride all
</Directory>

Du coup, j'ai accès à l'URL par www.msrv.brusses.fr

0
LEVINE Messages postés 128 Date d'inscription jeudi 9 février 2006 Statut Membre Dernière intervention 25 février 2024 4
Modifié le 1 juin 2023 à 14:44

Bon. C'est passé en HTTPS avec certbot.

le Vhosts :

<VirtualHost *:80>

    ServerName www.msrv.brusses.fr
    ServerAlias www.msrv.brusses.fr  # <<== Utile ?
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www/html/owncloud

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

</VirtualHost>

<Directory /var/www/>
       Options FollowSymLinks
       AllowOverride Limit Options FileInfo
       DirectoryIndex index.php
       Require all granted

       RewriteEngine on
       RewriteCond %{SERVER_NAME} =www.msrv.brusses.fr
       RewriteRule ^ http://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]
       
       AllowOverride all
</Directory>


<VirtualHost *:443>

    ServerName www.msrv.brusses.fr
    ServerAlias www.msrv.brusses.fr  # <<== Utile ?
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www/html/owncloud

    SSLEngine on
       
    SSLCertificateFile    /etc/letsencrypt/live/msrv.brusses.fr/cert.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/msrv.brusses.fr/privkey.pem

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

</VirtualHost>

<Directory /var/www/>
       Options FollowSymLinks
       AllowOverride Limit Options FileInfo
       DirectoryIndex index.php
       Require all granted

       RewriteEngine on
       
       RewriteCond %{SERVER_NAME} =www.msrv.brusses.fr
       RewriteRule ^ http://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]
       
       AllowOverride all
</Directory>

Oui, mais les navigateurs crient au secours face à ce certificat. Comme si je n'étais pas en HTTPS.

Je vais voir comment faire accepter les certificats de Letsencyrpt.

Une piste : modifier manuellement les fichiers du certificat ?

0
mamiemando Messages postés 33325 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 22 octobre 2024 7 799
31 mai 2023 à 00:02

Bonjour

Merci de consulter ce tutoriel pour poster tes extraits de code. Normalement tu n'as pas à "faire accepter les certificats à letsencrypt" : c'est lui qui le crée et l'installe. Si tu as déjà tes propres certificats, tu n'as pas besoin de letsencrypt (voir cet exemple).

Bonne chance

0