Accéder à son serveur Raspberry depuis son adresse en domaine [Résolu]

Bonjour,

J’ai installé et configuré un serveur apache2 sur mon Pi3 sans clavier/souris/ecran.

  • Il fonctionne depuis chez moi sur son adresse ip : http:// 192.168…
  • Il fonctionne depuis mon domicile via Tor Browser sur http:// mondomaine.fr/
  • Il fonctionne de l’extérieur sur http:// mondomaine.fr/
  • Il ne fonctionne pas de chez moi sur http:// mondomaine.fr/

J’ai configuré le https avec let’s encrypt, c’est bon en distant. Pas en local (forcément, le nom de domaine est différent (livebox en local)

Comment accéder en local (chez moi) sur http:// mondomaine.fr/
Note : je remplace mondomaine.fr par mon NoIp domain name …

Ca me permettrait de rediriger mes pages du port 80 vers le port 443 via

< VirtualHost *:80 >
ServerName http:// mondomain/
Redirect permanent / https:// mondomain/
< /VirtualHost >

Car ce faisant le https est validé hors domicile depuis un lien http, mais mon site est inaccessible en local sur http:// 192.168…

Merci d’avance.

@snblg
Salut,

Normal !
De chez toi, tu dois passer par le réseau interne.

Avec un fichier htaccess, ça fonctionnerait ?
(pour dire que http:// mondomaine.fr/ → https:// mondomaine.fr/ mais que http:// 192.168… ne change pas)

En local que dit http:// 192.168…:80 et que dit http:// 192.168…:443 ?

Et avec TOR en local, tu passes en https ?

++

Merci Nabla, je n’avais pas pensé à un .htaccess.

Je vais essayer de ne rediriger que les adresses en http:/ /mondomaine/… vers https:/ /mondomaine/…

En local http:// 192.168…:80 fonctionne
En local http:// 192.168…: 443 ne fonctionne pas (Bad Request)

Non, Tor ne marche pas en local sur https:// 192.168 (ce qui est normal)
Oui, Tor fonctionne en distant chez moi sur https: // mondomaine /… ( ce qui est normal aussi)

Je peux aussi utiliser le Wifi maison et via mon téléphone, https: // mondomaine /… fonctionne.
C’est seulement sur le réseau câblé que ça ne fonctionne pas avec le nom de domaine, ni en http ni en https.

Mon code ne fonctionne ni en local ni en distant :

voici le contenu du .htaccess
RewriteEngine On
RewriteCond %{HTTP_HOST} ^mondomaine$ [OR]
RewriteRule ^(.*) https://mondomaine/$1 [R=301,L]

Alors je vais continuer à chercher.

@snblg

Re,

Et en local httpS:// 192.168…: 443 donne quoi ? (sans Tor)

le souci me semble être le RewriteCond %{SERVER_PORT} 80 qui balance tout le 80 vers le 443 sans réserve.

Différence entre ça :

Options +FollowSymlinks
RewriteEngine on
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://bidulle.truc/$1 [QSA,L,R=301]
RewriteCond %{HTTP_HOST} ^www.bidulle.truc$
RewriteRule ^(.*) https://bidulle.truc/$1 [QSA,L,R=301]
RedirectPermanent http://192.168.1.xx:80 https://192.168.1.xx:80

ou

Options +FollowSymlinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^bidulle.truc$
RewriteRule ^(.*)$ https://bidulle.truc/$1 [QSA,L,R=301]
RewriteCond %{HTTP_HOST} ^www.bidulle.truc$
RewriteRule ^(.*) https://bidulle.truc/$1 [QSA,L,R=301]
RedirectPermanent http://192.168.1.xx:80 https://192.168.1.xx:80

Alors ???
(je ne suis pas compétent ; désolé ; mais je tente)

++

Bonjour Nabla,

mod_rewrite n’était pas activé sur mon serveur : j’ai fait
sudo a2enmod rewrite
et redémarré apache.

Ensuite, le meilleur code qui fonctionne chez moi pour l’.htaccess est le suivant :
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

La deuxième ligne vérifie si on est ou pas en https
On ne redirige vers https que si on est en http

3ème ligne:
on conserve soit 192.168.1.x, soit monNomDeDomaine.tralala , seul http:// est remplacé par https// si condition ligne 2 remplie

Ca fonctionne car une fois qu’on est en https, on y reste.
Le problème du .htacces est qu’il est exécuté à chaque chargement de page.

Il me reste à voir comment intégrer ce code dans mon apache.conf. Dans ce cas, ce sera vérifié une seule fois, donc site plus rapide. Je suis sur un Raspberry !

Mais j’ai déjà une solution viable

Cool si ça fonctionne.
En effet, à creuser pour améliorer.

Et merci à toi pour avoir poster une version améliorée de ma suggestion.
Je ne suis pas compétent et ne peux donc pas résoudre bcp de soucis d’emblée, mais j’essaye d’utiliser mes connaissances générales pour aiguiller les autres à trouver une réponse (parfois (souvent) en disant des bêtises, j’avoue :blush:)

Et, je me demande si je ne vais pas coller un de mes Rpi en serveur Web aussi pour avoir ce que je veux comme hébergement … donc … :wink:

Pour info, voici mes étapes pour faire de mon Pi un serveur :

NB j’ai du mettre des espaces pour les liens http : je n’ai pas droit à plus de 2 renvois par liens


CONFIGURATION DU RASPBERRY PI pi3dr

La livebox

L’adresse de la Livebox est gérée par noip (section Dyndns)
https:// my.noip. com/#!/

Redirections port 25 (exim4), 80 et 443 (apache2) : dans configuration avancée onglet NAT/PAT

Mes alias Firefox :
liv http:// 192. 168…
cla http:// 192. 168…
for http:// 192. 168.2…/yyy
php http:// 192. 168…/phpmyadmin
noi https:// www. Sign In - No-IP

0 Installation de Raspbian Stretch Lite
https:// www. Raspberry Pi OS – Raspberry Pi
écriture de l’image avec Suze Studio Imagewriter

1er boot :
sudo raspi-config
pour clavier français, activation ssh, désactivation vnc, etc comme mémoire vidéo
sudo apt-get update puis sudo apt-get upgrade

1 Agrandir police de la console (optionnel mais bien pour mes yeux)
sudo nano /etc/default/console-setup

mettre
CHARMAP=« UTF-8 »
CODESET=« Lat7 »
FONTFACE=« Terminus »
FONTSIZE=« 28x14 »
Sauvegarder, quitter, reboter

2 passage en ip fixe
vérifier le nom de l’adaptateur réseau par ifconfig - chez moi enxb827eb0b15a6
sudo /etc/dhcpcd.conf

interface enxb827eb0b15a6
static ip_address=192.168…
static routers=192.168…
static domain_name_servers=192.168…

3 Ajout utilisateur
sudo useradd moi
sudo useradd moi video, etc (les groupes de pi
https:// www. How to add new users and add users to groups on your Raspberry Pi | The Pi Hut

puis
arrêter le raspberry.
Débrancher le câble vidéo, clavier et souris.
Désormais accès par alias pi qui lance le script /home/moi/.sshpi3dr.sh soit
sshpass -p ‹ motdepasse › ssh -o StrictHostKeyChecking=no moi@192.168…

Modifier le fichier .bashrc
nano .basrc

et mettre
reset
alias ap=‹ sudo service apache2 restart ›
alias html=‹ cd /var/www/html ›
alias cles=‹ cd /etc/apache2/ssl/ ›
alias pro=‹ sudo service proftpd restart ›

4 Installation Apache2 et telnet
sudo apt-get install telnet apache2
openssl est installé !

5 Proftpd
https:// cjl-info. com/installer-un-serveur-ftp-sous-raspbian-dans-votre-raspberry-c22-p114.html
et sécurisation via certificat openssl dans
/etc/proftpd/ssl/proftpd.cert.pem

6 Exim4
https:// debian-facile .org/doc:reseau:exim4-pour-les-nulls
Se baser sur la deuxième configuration

7 Mariadb
https:// raspbian-france .fr/installer-mariadb-raspbian/
et configuration :
https:// www.rootusers .com/how-to-install-and-configure-mariadb/

8 Php 7.1
sudo nano /etc/apt/sources.list
rajouter ligne
deb http:// mirrordirector .raspbian.org/raspbian/ buster main contrib non-free rpi
sudo apt-get update
sudo apt-get install php7.1

9 Phpmyadmin


10 Letsencrypt
certbot installé sur mon pc (archlinux)
1ère génération de clés via la commande
sudo certbot certonly --manual
Les clés sont sur mon pc dans /etc/letsencrypt/archive/domaine.hopto.org/fullchain.pem

Mise à jour des clés sur terminal de mon pc:
letsencrypt-auto renew
majcles
Il faut les copier via lftp dans le dossier letsencrypt du Rapsberry :
sous terminal : alias ->majcles (un sript qui automatise par :
sudo lftp -u moi,motdepasse 192.168.2… -e « source /home/moi/ScriptsRaspberry/majcles.sh; quit ; »)

Attention aux noms cert1.pem chain1.pem fullchain1.pem et privkey1.pem

Notes affichées à la 1ère mise en place :

  • Congratulations! Your certificate and chain have been saved at:
    /etc/letsencrypt/live/domaine.hopto.org/fullchain.pem EDIT LIENS SYMBOLIQUES
    Your key file has been saved at:
    /etc/letsencrypt/live/domaine.hopto.org/privkey.pem
    Your cert will expire on 2017-11-16. To obtain a new or tweaked
    version of this certificate in the future, simply run
    letsencrypt-auto again. To non-interactively renew all of your
    certificates, run « letsencrypt-auto renew »
    donc faire letsencrypt-auto renew

11 Sécurisation selon cette page :
https:// mespotesgeek .fr/fr/configuration-et-securisation-dun-serveur-linux-debian-jessie-partie-2/

12 config mode rewrite pour redirection http → https via htaccess
http:// xmodulo .com/how-to-enable-mod_rewrite-in-apache2-on-debian-ubuntu.html

12 bis clonage de la carte sd et création d’une image de cette carte sd ( on est jamais trop prudent)


13 transfert du cms sur le pi3, configuration…
Je n’ai plus qu’à !

Voilà, je n’ai pas tout noté, mais dans les grandes lignes, ça donne une idée … et en corrigeant mes liens (retrait des espaces), au 26 août, sur Raspberry jessie, ton serveur sera plutôt bien configuré !

Je suppose que d’ici quelques mois, cette procédure sera en partie obsolète !

Facile en configurant un tunnel ssh depuis sa box. Tu te compliques bien les choses :wink:

@snblg
Merci pour le partage.

ça doit dépendre des box … moi, j’ai une vieille FreeBox V5 (bridée en 10/100 ; Grrrrr ; à quoi me sert mon switch giga et mes câbles réseau de Cat5e à Cat7 ???)

@stef : je n’ai pas d’accès SSH depuis l’extérieur et n’en veut pas. L’accès depuis mon réseau local est bien suffisant sur ce port.
Après, j’ai lu et comparé plusieurs façons de sécuriser son Pi, j’ai choisi ce qui me correspondait le mieux.
36 façons de faire les choses : chacun peut trouver son bonheur.