Nextcloud et Let’s Encrypt : accéder en http en local

shortcut

Dans les différents guides d'installation de Nextcloud sur Raspberry Pi du site, je vous ai montré comment installer le certificat de confiance Let's Encrypt pour sécuriser et chiffrer la communication.

L'inconvénient, c'est que nous devons passer systématiquement par internet en https même lorsque nous nous connectons en local.

Si nous avons confiance dans notre réseau local, il peut être intéressant de configurer l'accès à Nextcloud par http. On aura bien à l'esprit que nos communications passent alors en clair sur le réseau local.

La manoeuvre est facile, il suffit d'ajouter un nouveau virtualhost à notre fichier de configuration apache pour Nextcloud.

Modification du fichier Apache de configuration de Nextcloud

 

Dans cet exemple, le fichier Apache de configuration de Nextcloud se nomme nextcloud.conf et l'adresse du serveur (le Raspberry Pi) est 192.168.0.15.

 

Examinons ce fichier. Il contient d'abord la configuration que nous avons entrée lors de l'installation de Nextcloud

<VirtualHost *:80>
 DocumentRoot "/var/www/nextcloud"
 ServerName nextcloud-myweb.duckdns.org

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

<Directory /var/www/nextcloud/>
 Options +FollowSymlinks
 AllowOverride All

<IfModule mod_dav.c>
 Dav off
 </IfModule>

SetEnv HOME /var/www/nextcloud
 SetEnv HTTP_HOME /var/www/nextcloud
 Satisfy Any

</Directory>

 

Puis à la fin du fichier, les instructions qui ont été ajoutées par certbot pour le certificat Let's Encrypt si on a opté pour l'installation "secure" afin de rediriger toutes les requêtes en https :

 RewriteEngine on
 RewriteCond %{SERVER_NAME} =nextcloud-myweb.duckdns.org
 RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]
 </VirtualHost>

 

C'est cette dernière instruction qui est responsable du fait que même si vous souhaitez accéder à Nextcloud en tapant l'adresse IP du Pi par son adresse interne (192.168.0.15), vous êtes redirigés sur l'adresse internet (nextcloud-myweb.duckdns.org)

 

Nous allons simplement ajouter un virtualhost supplémentaire au début de ce fichier :

$ sudo nano /etc/apache2/sites-available/nextcloud.conf

(Rappel : à placer en tout début!)

<VirtualHost 192.168.0.15:80>
 DocumentRoot "/var/www/nextcloud"
 ServerName nextcloud-myweb.duckdns.org

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

<Directory /var/www/nextcloud/>
 Options +FollowSymlinks
 AllowOverride All

<IfModule mod_dav.c>
 Dav off
 </IfModule>

SetEnv HOME /var/www/nextcloud
 SetEnv HTTP_HOME /var/www/nextcloud
 Satisfy Any

</Directory>

</VirtualHost>

Ctrl-o + Ctrl-x pour enregistrer et fermer.

 

$ sudo systemctl restart apache2

 

On vérifie que le serveur apache fonctionne correctement :

$ sudo systemctl status apache2

Modification du fichier de configuration de Nextcloud

Nous allons maintenant devoir indiquer à Nextcloud que l'adresse locale du serveur est une adresse de confiance afin qu'il autorise la connexion.

Dans cet exemple, la configuration de Nextcloud est située dans /var/www/nextcloud/config/

 

$ sudo su
# nano /var/www/nextcloud/config/config.php

 

Dans le fichier, on doit voir apparaître :

'trusted_domains' =>
 array (
 0 => 'nextcloud-myweb.duckdns.org',
),

 

On rajoute l'adresse IP lan du serveur (ici 192.168.0.15) :

<?php
$CONFIG = array (
(...)
'trusted_domains' =>
 array (
 0 => 'nextcloud-myweb.duckdns.org',
 1 => '192.168.0.15',
 ),

Ctrl-o et Ctrl-x pour enregistrer et quitter.

# exit

 

À partir de maintenant, nous pouvons accéder depuis notre réseau local à Nextcloud (et seulement depuis le réseau local) à l'adresse :

http://192.168.0.15

You may also like...

2 Responses

  1. ypose dit :

    Bonjour,
    J’aurais une question toute bête de newbie du Linux… Tout fonctionne parfaitement après suivi tous tes tutos à la lettre mais je voudrais savoir. Ici on accède à Nextcloud en tapant http://192.168.0.15 soit la racine comment faire pour y acceder plutot en tapant http://192.168.0.15/nextcloud ?
    Merci d’avance

    • SoozX dit :

      Bonjour,

      Dans ce cas, dans le virtualhost supplémentaire, au lieu de :
      DocumentRoot “/var/www/nextcloud”
      tu inscris :
      DocumentRoot “/var/www”

      Pour le reste, pas de changement.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *