4.Rendre Nextcloud accessible par Internet

Pour l'instant notre serveur n'est accessible que sur notre réseau local. Nous allons maintenant le connecter à Internet.

Créer un nom de domaine

Pour accéder à notre serveur par Internet il faut créer un nom de domaine. En effet il est malcommode d'accéder à notre box par son adresse IP. De plus celle-ci est susceptible d'être modifiée par notre FAI. Vous avez deux solutions :

  • Utiliser les services d'un fournisseur de nom de domaine,
  • Créer et administrer votre propre domaine.

Avec un fournisseur de nom de domaine

Créez un compte chez un de ces fournisseurs :

Le domaine sera par exemple freedns.org et nous pouvons choisir un sous-domaine moncloud. L'adresse de notre serveur Nextcloud sera moncloud.freedns.org.

Votre propre domaine

Achetez un domaine chez un hébergeur ou un registrar. Exemple ici avec gandi :

Achat d'un nom de domaine che Gandi

Cela vous coûtera environ 10 € par an.
Ensuite il faut configurer le DNS (Domain Name Server) pour qu'il pointe vers votre adresse IP sur Internet. Adresse qu'on trouve dans l'administration de la box.

Dans cpanel, interface d'administration utilisée par beaucoup d'hébergeurs, il faut aller dans . Une fois trouvé votre domaine il faut lui créer un A record. On fait correspondre un nom de domaine à une adresse IP.

Ensuite, il faut attendre que tous les serveurs DNS reconnaissent votre nom de domaine. Quelques heures, maximum 24 heures.

Attention !
Si votre FAI a la mauvaise idée de modifier l'adresse externe de votre box, il faudra reconfigurer.

Faire connaître à Nextcloud le nom de domaine

Pour que Nextcloud accepte les connexions sur ce domaine, il faut le lui indiquer. Toujours en utilisant le terminal, saisir la commande :

sudo -u www-data php /var/www/nextcloud/occ config:system:set trusted_domains 1 --value='moncloud.duckdns.org'

Pour vérifier on peut utiliser la commande :

sudo -u www-data php /var/www/nextcloud/occ config:system:get trusted_domains

Le terminal doit afficher au moins deux lignes, la première contenant l'adresse IP de votre serveur Nextcloud, la deuxième contenant le domaine que vous venez de déclarer.

Configurer la box

Il faut ensuite configurer notre box pour que la box redirige ces requêtes vers Nextcloud et non un des autres terminaux branchés sur la box.

En général il faut trouver la commande NAT/PAT ou Gestion des ports dans l'interface de la box.

Utiliser un certificat Letsencrypt pour Nextcloud

La connexion à Nextcloud est sécurisée (https://) par un certificat SSL autosigné. Proiblème. Un utilisateur non averti sera peut-être effrayé par l'avertissement qu'il verra à la première connexion :

Il vaut mieux installer un certificat Letsencrypt. Celui-ci, tout en étant gratuit, est un certificat reconnu par tous les navigateurs.

Commençons par installer Letsencrypt. Nous allons suivre les instructions que nous donne Letsencrypt : https://certbot.eff.org/lets-encrypt/ubuntubionic-apache. Commençons par installer le package Letsencrypt :

sudo apt-get update
sudo apt-get install software-properties-common sudo add-apt-repository universe
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update

Puis installons certbot

sudo apt-get install certbot python-certbot-apache

que nous lançons par la commande

sudo certbot --apache

certbot nous demandera d'abord une adresse mail pour nous informer de problèmes éventuels, puis le nom de domaine à sécuriser. Étape importante, certbot nosu proposera de choisir de rediriger tout le trafic de notre serveur Nextcloud vers une connexion sécurisée :

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for new sites, or if you're confident your site works on HTTPS. You can undo this change by editing your web server's configuration.
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):

Je vous conseille de choisir l'option 2. Votre serveur ne sera plus accessible que par une connexion sécurisée (https://) même si elle n'est pas demandée lors de la requête. certbot se charge même de redémarrer le serveur apache.

Finissons de sécuriser notre serveur. N'oubliez pas que nous avons créé une page phpinfo.php à la racine du site. Celle-ci est maintenant accessible à n'importe qui. Le moment est venu de la supprimer :

sudo rm /var/www/html/phpinfo.php

Voilà, le serveur Nextcloud est prêt à recevoir vos fichiers.