Raspberry Pi et Owncloud en HTTPS avec Nginx
Si vous souhaitez installer ce service, vous trouverez des dizaines (au moins) de tutos avec votre ami Google. Alors ici je vais faire simple et rapide pour partager une partition du disque USB sur Internet le tout en HTTPS !
Les tutoriels pour installer Owncloud vous en trouvez donc partout (vous en avez un excellent et simple sur tropfacile.net). Donc un de plus sur ce site ! 🙂 On va installer Owncloud pour pouvoir partager une partition du disque USB. Nous allons aussi voir la gestion des certificats pour faire une connexion en HTTPS.
- Installer les packages nécessaires
apt-get install php5 php5-json php5-gd php5-sqlite curl libcurl3 libcurl3-dev php5-curl php5-common php-xml-parser sqlite
- Installer le package php-apc pour optimizer les performances (merci le forum raspberrypi.org)
apt-get install php-apc
- Télécharger OwnCloud
http://doc.owncloud.org/server/5.0/admin_manual/
- Décompresser l’archive dans /var/www
cd /var/www tar jxvf <archive>
- Changer le owner du répertoire
chown -R www-data:www-data /var/www/owncloud
- Créer le répertoire /etc/nginx/certs s’il n’existe pas
mkdir /etc/nginx/certs
- Générer les certificats pour le site dans le répertoire /etc/nginx/certsAttention : utilisez un mot de passe robuste pour générer votre certificat. Le certificat est valable 365 jours. Il faudra en générer un nouveau dans un an
openssl genrsa -des3 -out owncloud.key 1024 openssl req -new -key owncloud.key -out owncloud.csr cp owncloud.key owncloud.key.org openssl rsa -in owncloud.key.org -out owncloud.key openssl x509 -req -days 365 -in owncloud.csr -signkey owncloud.key -out owncloud.crt
- Supprimer les fichier inutiles
rm owncloud.csr owncloud.key.org
- Créer un fichier /etc/nginx/sites-available/owncloud (A vous de choisir le port)
server { listen 8091 ssl; ssl on; ssl_certificate /etc/nginx/certs/owncloud.crt; ssl_certificate_key /etc/nginx/certs/owncloud.key; error_log /var/log/nginx/owncloud.log; access_log /var/log/nginx/owncloud.log; server_name owncloud; root /var/www/owncloud; index index.php; client_max_body_size 1000M; # deny direct access location ~ ^/(data|config|.ht|db_structure.xml|README) { deny all; } # default try order location / { try_files $uri $uri/ @webdav; } # owncloud WebDAV location @webdav { fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_split_path_info ^(.+.php)(/.*)$; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param HTTPS on; include fastcgi_params; } location ~ .php$ { include /etc/nginx/fastcgi_params; try_files $uri =404; fastcgi_param HTTPS on; fastcgi_index index.php; fastcgi_split_path_info ^(.+.php)(/.+)$; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass unix:/var/run/php5-fpm.sock; } }
- Activer le site
ln -s /etc/nginx/sites-available/owncloud /etc/nginx/sites-enabled/owncloud
- Changer les droits sur le répertoire partagé
chown -R www-data:www-data /media/usbdrive/internet
- Modifier le fichier /etc/php5/fpm/php.ini pour augmenter la taille des fichiers pouvant être envoyés
upload_max_filesize = 700M post_max_size = 800M
- Relancer NGINX et php5-fpm
service nginx restart service php5-fpm restart
- Accéder à Owncloud par https://<IP_du_Raspberry> :<port_dans_la_configuration>/
Affichage du certificat pour se connecter à votre Owncloud
- Il vous suffit alors de suivre les instructions à l’écran
Paramètres de configuration de Owncloud
- Rendez-vous sur http://owncloud.org/support/ pour la documentation sur l’utilisation de Owncloud
- Un petit tour dans votre répertoire de data vous confirmera que les données seront stockées au bon endroit
Voilà j’espère vous avoir aidé dans votre installation.
Bonne soirée
Pour la version 5.0.4, merci à Tef (son site ici) pour son aide :
- Modifier le fichier /etc/nginx/sites-available/owncloud pour y mettre uniquement le code se trouvant à cette adresse :https://github.com/owncloud/documentation/blob/master/admin_manual/installation/installation_others.rst
- Et modifier les lignes suivantes :
- le nom du serveur (attention il apparaît à deux endroits) –> server_name owncloud;
- le port ssl –> listen 8091 ssl;
- l’emplacement et le nom des certificats :
- –> ssl_certificate /etc/nginx/certs/owncloud.crt;
- –> ssl_certificate_key /etc/nginx/certs/owncloud.key;
- le root –> root /var/www/owncloud;