Taper l'URL de mon serveur au lieu de son IP publique
Résoluavion-f16 Messages postés 20367 Statut Contributeur -
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
- Atlas pro url serveur invalide
- Url du serveur invalide - Meilleures réponses
- Url atlas pro - Meilleures réponses
- Url - Guide
- Url masquée pour votre sécurité - Forum TV & Vidéo
- La nouvelle messagerie du Boncoin.... - Forum Réseaux sociaux
- Serveur diff message ✓ - Forum Mobile
- Clé windows 10 pro 64 bits gratuit - Guide
7 réponses
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
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 :
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/wordpresset 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
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 ;)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionPas 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
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 ?
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
