[Tuto] Owncloud en HTTPS avec Apache et SSL

[Tuto] Owncloud en HTTPS avec Apache et SSL

Je vous ai déjà parlé ici d’Owncloud il y’a quelques temps. Plutôt que de publier un énième tuto pour l’installer je vais vous montrer comment sécuriser l’accès à Owncloud en HTTPS avec SSL. Une bonne façon d’éviter le vol de session.

Avant toute chose je considère que vous avez un server Web tournant avec Debian ou ses dérivées, Apache, un Virtual Host déjà déclaré.

Le Virtual Host

Vous avez un virtual host déjà déclaré, c’est parfait mais il écoute sur le port 80 réservé au traffic web « classique » et l’on veut utiliser le port réservé au traffic web sécurisé: le port 443. Modifiez donc votre première ligne comme ceci:

<VirtualHost *:443>

Puis dans le Virtual Host on active le SSL pour ce domaine ainsi que l’utilisation des clés et certificats:

#Sécurisation via SSL
        SSLEngine On
        SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
        SSLCertificateFile /etc/ssl/certs/owncloud.crt
        SSLCertificateKeyFile /etc/ssl/private/owncloud.key

Vous pouvez bien sur appeler vos fichiers comme vous voulez.

Génération des clés et certificats

On génère d’abord la clé privée:

openssl genrsa -out /etc/ssl/private/owncloud.key 1024

puis la demande de certificat à partir de la clé:

openssl req -new -key /etc/ssl/private/owncloud.key -out /etc/ssl/certs/owncloudperso.csr

A cette étape plusieurs questions vous seront posées auxquelles vous pouvez répondre selon votre situation ou de manière plus « anonyme ».
Enfin on construit le certificat:

openssl x509 -req -days 365 -in /etc/ssl/certs/owncloudperso.csr -signkey /etc/ssl/private/owncloud.key -out /etc/ssl/certs/owncloudperso.crt

Ce certificat est en quelque sort un certificat personnel qui n’est pas reconnu par défaut par les navigateurs, pour cela il faut un certificat généralement payant. La seule différence pour nous c’est un avertissement à la connexion au site mais la sécurité est la même.

Fin

On termine par l’activation de ssl sur Apache et le redémarrage du service:

a2enmod ssl
/etc/init.d/apache2 restart

On vérifie si ça marche si l’URL est de ce type:
owncloudssl

Voilà c’est tout ! N’oubliez pas de changer la configuration de vos clients de synchronisation pour qu’ils utilisent la connexion sécurisée.