Qnap [TUTO NEXTCLOUD] Sécurisation Nextcloud (HTTPS) + Migration du dossier DATA

coeur51

Chevalier Jedi
19 Décembre 2015
336
4
18
Configuration HTTPS Nextcloud QNAP & migration du dossier data

Configuration Nextcloud QNAP

Outils :
Pour Windows : WinSCP (à noter que toutes les modifications ont été effectuées avec cet outil.
Pour MAC : Cyberduck

Ou commande vi ssh via Putty (plus d’infos : Guide de SUR-VI (Utilisation de vi))

Prérequis : Posséder un nom de domaine DDNS myQNAPcloud et un certificat Let’s Encrypt valide et ouvrir le port 45083 sur votre box/routeur

Note :

Suivant votre volume de stockage, la localisation vers le dossier Nextcloud est susceptible d’être sensiblement différente :

HDA_DATA : /share/HDA_DATA/.qpkg/NextCloud/nextcloud/config/
MD0_DATA : /share/MD0_DATA/.qpkg/NextCloud/nextcloud/config/
CACHDEV1_DATA : /share/CACHEDEV1_DATA/.qpkg/NextCloud/nextcloud/config/

Dans ce tutoriel, nous supposons que le volume de stockage est CACHDEV1_DATA (à adapter selon votre cas)

1. config.php

Localisation
/share/CACHEDEV1_DATA/.qpkg/NextCloud/nextcloud/config/

Modifications
Ouvrir le fichier et ajouter :

Code:
'trusted_domains' => 
array (
0 => 'qnap_name.myqnapcloud.com:45083',
'memcache.local' => '\OC\Memcache\APCu',

ATTENTION : Modifier qnap_name par le nom de votre QNAP !

2. httpd-ssl.conf

Localisation
/share/CACHEDEV1_DATA/.qpkg/NextCloud/

Modifications
- Rechercher la ligne indiquant "SSLCertificateFile" et remplacer cette ligne par:

Code:
SSLCertificateFile "/etc/stunnel/stunnel.pem"

- Rechercher la ligne indiquant "SSLCertificateChainFile" et remplacer cette ligne par:

Code:
SSLCertificateChainFile "/etc/stunnel/uca.pem"


- Trouver la ligne indiquant "SSLCertificateKeyFile" et commenter avec un # comme ci-dessous:

Code:
#SSLCertificateKeyFile "$ {QPKG_ROOT} /server.key"

- Enregistrer le fichier.

3. .htaccess

Localisation
/share/CACHEDEV1_DATA/.qpkg/NextCloud/nextcloud/

Modifications
Ouvrir le fichier et ajouter :

Code:
#Activation HSTS
<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains"
</IfModule>

4. Migration du dossier data

Etape à suivre seulement si vous n’avez pas modifier le chemin du dossier data à l’installation de Nextcloud

Création d’un dossier data :

Localisation
/share/CACHEDEV1_DATA/

Création
Créer par un exemple le dossier :
Code:
NextcloudData

Duplication du dossier data :

Localisation
/share/CACHEDEV1_DATA/.qpkg/NextCloud/nextcloud/data

Action
Sélectionner tous les dossiers et fichiers puis faire un clic-droit et cliquer sur dupliquer.
Dans le champ Chemin distant de destination, indiquer le chemin du dossier que vous avez créé précédemment :

/share/CACHEDEV1_DATA/NextcloudData/*.*

Les droits et permissions sont automatiquement dupliqués

Modification du fichier config.php

Localisation
/share/CACHEDEV1_DATA/.qpkg/NextCloud/nextcloud/config/[/code]

Modification

- Trouvez la ligne "datadirectory" et remplacer le chemin par :
Code:
/share/CACHEDEV1_DATA/NextcloudData

5. Redémarrage des services Qapache et Nextcloud

Prérequis : Ligne de commande via SSH (PuTTY)

Outil : PuTTy (connexion via SSH)

a. Arrêtez NextCloud
Code:
/etc/init.d/NextCloud.sh stop

b. Arrêtez QApache
Code:
/etc/init.d/Qapache.sh stop

c. Lancez QApache
Code:
/etc/init.d/Qapache.sh start

d. Démarrez NextCloud
Code:
/etc/init.d/NextCloud.sh start

Une fois ces modifications effectuées, vous serez en mesure de vous connecter à Nextcloud via l'URL https://qnap_name.myqnapcloud.com:45083

A noter qu'à chaque nouvelles MAJ, Nextcloud écrase tes modifications. Je vous conseille donc de faire un backup de vos fichiers modifiés.

Fichier au format PDF : Voir la pièce jointe Config_Nextcloud.pdf
 
Encore un grand merci pour ton aide Cœur51 ! ;)

J'ai maintenant ma connexion NextCloud en HTTPS sans avoir eu besoin de toucher aux réglages de QApache. :)
 
pas tout compris encore ..genre pourquoi déplacer ce dossier DATA
mais çà semble Cool, et très bien rédiger
:arrow: je l'ai mis de coté pour tout relire ..sur !

TUTO sur NEXTCLOUD .. chui toujours preneur
 
Salut,
Beastien a dit:
...pas tout compris encore ..genre pourquoi déplacer ce dossier DATA
Ça sert à ne pas avoir tes données dans le dossier d'installation de NextCloud.
Ce qui fait que si tu as une plante lourde de ton NextCloud et que tu dois le réinstaller, tu es sûr de ne pas toucher aux données vu qu'elles sont ailleurs. ;)
 
Bonjour, super TUTO, mais
J'ai quelques petits soucis pour les connexions en HTTPS, j'ai bien modifié comme indiqué la variable de tableau 'trusted_domains' en y mettant le domaine xxx.myqnapcloud.com:45083, mais refus du navigateur de s'y connecter (safari, chrome, opéra). En local aucun problème.
'trusted_domains' =>
array (
'xxxx.myqnapcloud.com:45083',
'192.168.1.11',
'memcache.local' => '\OC\Memcache\APCu',

De plus, j'obtiens une erreur avec Qapache lorsque je le stop et relance :
# /etc/init.d/Qapache.sh stop
AH00526: Syntax error on line 268 of /share/CACHEDEV1_DATA/.qpkg/Qapache/etc/httpd.conf:
DocumentRoot '/share/htdocs' is not a directory, or is not readable

Le répertoire htdocs n'existe pas sous share.

Merci pour vos commentaires et votre aide.
 

Pièces jointes

  • Capture d’écran 2019-04-08 à 10.53.33.png
    Capture d’écran 2019-04-08 à 10.53.33.png
    293.9 KB · Affichages: 8 428
Hello marc974,

Aurais-tu modifier quelque chose dans le fichier httpd.conf d'Apache car tout se passe dans le dossier Nextcloud ?

Bonne journée
 
coeur51 a dit:
Hello marc974,

Aurais-tu modifier quelque chose dans le fichier httpd.conf d'Apache car tout se passe dans le dossier Nextcloud ?

Bonne journée

Bonjour, non rien modifié de ce dossier, j'ai juste créé le dossier htdocs sous /share/
Maintenant plus d'erreur à ce niveau, j'ai également trouvé mon erreur qui me bloquée pour la connexion HTTPS, simplement une touche redondante sur le .com (.comm)

Par contre, aurais tu des infos pour le changement de SGBD ?, actuellement je suis SQLite et je souhaiterais passer sur MariaSQL pour avoir plus d'un utilisateurs.

Merci de ton aide :)
 
marc974 a dit:
Bonjour, super TUTO, mais
J'ai quelques petits soucis pour les connexions en HTTPS, j'ai bien modifié comme indiqué la variable de tableau 'trusted_domains' en y mettant le domaine xxx.myqnapcloud.com:45083, mais refus du navigateur de s'y connecter (safari, chrome, opéra). En local aucun problème.
'trusted_domains' =>
array (
'xxxx.myqnapcloud.com:45083',
'192.168.1.11',
'memcache.local' => '\OC\Memcache\APCu',

De plus, j'obtiens une erreur avec Qapache lorsque je le stop et relance :
# /etc/init.d/Qapache.sh stop
AH00526: Syntax error on line 268 of /share/CACHEDEV1_DATA/.qpkg/Qapache/etc/httpd.conf:
DocumentRoot '/share/htdocs' is not a directory, or is not readable

Le répertoire htdocs n'existe pas sous share.

Merci pour vos commentaires et votre aide.
pour info avec la meme erreur (mais infra totalement différente) voici la config, j'ai anonymisé mes données

Code:
<?php
$CONFIG = array (
 
  'trusted_domains' =>
  array (
    0 => 'localhost',
    1 => 'ip du server nextcloud',
    2 => 'nextcloud',
    3 => 'nextcloud',
   4 => 'ip de mon reverse proxy',
    5 => 'nom de domaine',
    6 => 'nextcloud.nom de domaine',
  ),
  'trusted_proxies' =>
  array (
    0 => 'ip de mon reverse proxy',
  ),


je ne sais pas si ça peut t'aider, mais ça m'a résolu le soucis de mon coté, je pense que ce qu'il te manque doit être au niveau des entrées 4,5,6, là ou toi tu as
'xxxx.myqnapcloud.com:45083',

ton port m'étonne un peu en fait
 
webmail a dit:
marc974 a dit:
Bonjour, super TUTO, mais
J'ai quelques petits soucis pour les connexions en HTTPS, j'ai bien modifié comme indiqué la variable de tableau 'trusted_domains' en y mettant le domaine xxx.myqnapcloud.com:45083, mais refus du navigateur de s'y connecter (safari, chrome, opéra). En local aucun problème.
'trusted_domains' =>
array (
'xxxx.myqnapcloud.com:45083',
'192.168.1.11',
'memcache.local' => '\OC\Memcache\APCu',

De plus, j'obtiens une erreur avec Qapache lorsque je le stop et relance :
# /etc/init.d/Qapache.sh stop
AH00526: Syntax error on line 268 of /share/CACHEDEV1_DATA/.qpkg/Qapache/etc/httpd.conf:
DocumentRoot '/share/htdocs' is not a directory, or is not readable

Le répertoire htdocs n'existe pas sous share.

Merci pour vos commentaires et votre aide.
pour info avec la meme erreur (mais infra totalement différente) voici la config, j'ai anonymisé mes données

Code:
<?php
$CONFIG = array (
 
  'trusted_domains' =>
  array (
    0 => 'localhost',
    1 => 'ip du server nextcloud',
    2 => 'nextcloud',
    3 => 'nextcloud',
   4 => 'ip de mon reverse proxy',
    5 => 'nom de domaine',
    6 => 'nextcloud.nom de domaine',
  ),
  'trusted_proxies' =>
  array (
    0 => 'ip de mon reverse proxy',
  ),


je ne sais pas si ça peut t'aider, mais ça m'a résolu le soucis de mon coté, je pense que ce qu'il te manque doit être au niveau des entrées 4,5,6, là ou toi tu as
'xxxx.myqnapcloud.com:45083',

ton port m'étonne un peu en fait

Hello, merci de tes conseils, cela fonctionne maintenant en HTTPS avec le port 45083 ( port donné dans le tuto ), il ne me reste plus que la migration de la base de donnée à faire. Pas encore trouvée.
 
webmail a dit:
c'est quelle ligne qui t'a aidé?
c'est quoi le soucis avec la base de données?

La base est celle par défaut, à savoir SQLite, je souhaite plus d'un utilisateurs, donc cela implique de passer sur un SGBD un peu plus solide, comme MariaDB (MySQL), la migration n'a pas l'air évidente à mettre en place. J'aime les choses simple. ;)
 
il y a l'air d'avoir un convertisseur
https://docs.nextcloud.com/server/12/admin_manual/configuration_database/db_conversion.html

ici un tuto avec owncloud
https://www.2daygeek.com/how-to-migrate-owncloud-from-sqlite-to-mysql-database/
 
marc974 a dit:
Par contre, aurais tu des infos pour le changement de SGBD ?, actuellement je suis SQLite et je souhaiterais passer sur MariaSQL pour avoir plus d'un utilisateurs.

Merci de ton aide :)

Hello,

Oui, c'est possible mais jamais tester. Un petit tuto : https://memo-linux.com/owncloud-migrer-sqlite-vers-mariadb/ (en Français :geek: )

Sinon, le plus simple est de réinstaller Nextcloud en faisant le choix de MariaSQL...

Bonne soirée.
 
Bonjour
Dans les prérequis il stipulé d'avoir un certificat Let's encrypt

si on a un certificat acheté chez Qnap ça change quelque chose ?

merci pour votre aide
 
Bonjour
j'ai suivi le tuto

et finalement quand je lance : https://monnas.myqnapcloud.com:45083/

j'obtiens ce message d'erreur

Ce site est inaccessible
monnas.myqnapcloud.com n'autorise pas la connexio
n.

pour info j'utilise le Nextcloud qui fonctionne avec apache 73

quelqu'un aurait une idée ?

MErci pour votre aide