Il y a quelques temps déjà que je réfléchis à mettre en place mon propre serveur de type "cloud" afin de pouvoir remplacer Google Drive et Dropbox.
Je me suis tout d’abord tourné vers Owncloud, mais l’essai n’a pas été concluant, non pas que celui-ci ne fonctionne pas, mais je l’ai trouvé d’une lenteur affligeante, malgré avoir suivi les conseils de bon nombre de personnes ayant eu ce problème. J’ai eu également pas mal de galères avec le client sous Linux, et je n’ai jamais réussi à le faire fonctionner correctement.
Dans ce tutoriel, nous allons apprendre à faire fonctionner ownCloud à travers une couche SSL en transformant les échanges HTTP en son homologue sécurisé HTTPS. Cela est notamment une obligation pour la communication entre le serveur ownCloud et les ownCloud clients qui servent à la synchronisation des clients avec les répertoires des serveurs.
II. Création du VitrualHost
Sous Apache2, nous allons commencer par créer un VirtualHost (“site”) avec une configuration qui fonctionnera avec le HTTPS (port 443)
Dans le répertoire « /etc/apache2/sites-available », nous créerons un nouveau fichier « owncloud.https » et saisirons les lignes suivantes
NameVirtualHost *:443
<VirtualHost *:443>
DocumentRoot /var/www/
SSLEngine On
SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
SSLCertificateFile /etc/ssl/certs/owncloud.crt
SSLCertificateKeyFile /etc/ssl/private/owncloud.key
</VirtualHost>
III. Activation des nouveaux modules
Nous allons maintenant activer le module SSL dans Apache2 pour que celui-ci puisse être utilisé dans nos échanges ownCloud :
a2enmod ssl
activer module SSL
On doit ensuite ajouter notre nouveau site aux sites actifs d’Apache2 :
a2ensite owncloud.https
Activer site HTTPS owncloud
Une dernière étape est à faire avant de rallumer notre serveur apache2.
IV. Création du certificat auto-signé
Maintenant nous pouvons accéder à Owncloud via le HTTPS, seulement on peut encore passer aussi via le HTTP, nous allons donc le forcer à utiliser le HTTPS. Il faut aller modifier un fichier PHP dans Owncloud pour forcer l’accès en HTTPS. Dans “/var/www/config/config.php“, ajouter : ‘force ssl’ => true.
Nous allons ensuite passer à la génération de nos clés, on crée un répertoire pour les clés :
cd /etc/apache2/ && mkdir CertOwncloud && cd CertOwncloud
On génère notre clé sur 1024 bits :
openssl genrsa -out owncloud.key 1024
Création des “.key” et “.csr” :
openssl req -new -key owncloud.key -out owncloud.csr
On rempliera ensuite les données du certificat correctement, il est important de noter que l’absence du CommonName pourra générer des erreurs plus tards. On crée ensuite le fichier de certificat :
openssl x509 -req -days 365 -in owncloud.csr -signkey owncloud.key -out owncloud.crt
On copiera ensuite nos certificats là on tous les certificats sont stockés :
cp owncloud.crt /etc/ssl/certs
cp owncloud.key /etc/ssl/private
Procédez au redémarrage d’Apache2 après avoir vérifié sa configuration:
apachectl configtest
service apache2 restart
On pourra ensuite vérifier dans notre navigateur que le HTTPS est bien utilisé en nous rendant sur l’interface web de notre ownCloud :