Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 04-12-2017 07:52:53

cestiopis
Membre
Inscription : 04-12-2017

Mon serveur apache2 ne prend pas en charge ma conf ssl

Bonjour,
J'ai installé owncloud sur une raspberry pi3 avec une version rasbian 9, je voudrais afficher la page en https. J'ai 3 fichier .conf sur /etc/apache2/sites-available : 000-default.conf ; default-ssl.conf ; owncloud.conf
fichier owncloud.conf :

<VirtualHost 192.168.1.27:443>
ServerName cestiolabs.zapto.org
DocumentRoot /var/www/html/owncloud
Redirect / https://cestiolabas.zapto.org/
# Activation du mode SSL
SSLEngine On
SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
# On indique ou est le certificat
SSLCertificateFile /etc/ssl/certs/owncloud.crt
SSLCertificateKeyFile /etc/ssl/private/owncloud.key
</VirtualHost>



J'ai généré mon certificat ssl avec openssl et indiqué le chemin du fichier .crt et .key dans le fichier owncloud.conf.
J'ai ensuite restart apache2.
Rien y fait la page est toujours en http. On dirait que apache ne prend pas en compte mon fichier owncloud.conf portant il est activé.
J'avoue que je n'ai plus d'idée.
Merci d'avance pour vos réponses

Edit à bendia : Modification du langage de la balise code : Voir le tuto : Le code, ça pique moins les yeux en couleur

Hors ligne

#2 04-12-2017 13:04:49

devnull
Membre
Distrib. : Debian stable
Noyau : Linux 4.9
(G)UI : LXDE
Inscription : 30-11-2017

Re : Mon serveur apache2 ne prend pas en charge ma conf ssl

Salut

Plusieurs points a prendre en compte dans ta conf.

1. De mémoire ownCloud a un fichier de config.php, avec un paramètre « "forcessl" => false|true, », et je me souviens avoir un peut galéré a vouloir débugger la redirection avec apache parce que j'avais pas vu que ce paramètre était à false par défaut, ce qui cassait la redirection vers HTTPS. Il faut bien sûr le mettre à true

Mais ça a peut-être changé depuis la dernière fois que j'ai installé un owncloud (en 2015)?

2. Mettre une IP locale dans tes VirtualHost est une mauvaise idée. Ça va casser la connexion à ton VirtualHost dès que tu voudra rendre ton serveur accessible sur le Net. Ou même en local si le DHCP décide d'attribuer une autre IP a ton Raspberry, au moment ou le bail expire. Il faut mettre une étoile à la palce de l'IP (surtout dans le cas ou t'as pas 15 000 services sur la même machine)

3. Pour pouvoir faire la redirection vers HTTPS, il te faut un VirtualHost qui écoute sur le port 80 (connexion en HTTP par défaut) pour pouvoir rediriger la connexion sur le port 443. Et "Redirect / https://cestiolabas.zapto.org/" va poser problème, puisque si ça ne fontionne, ça ne fera que la rediction depuis la racine en HTTP vers la racine en HTTPS. Si tu acce directement à une autre page (par exemple via un lien) la rediction en HTTPS ne se fera pas. Une meilleure solution consiste à réécrire les URL avec mod_rewrite

Fichier de config apache pour owncloud

<VirtualHost *:80>
  ServerName cestiolabs.zapto.org
  DocumentRoot /var/www/html/owncloud
  <IfModule mod_rewrite.c>
      RewriteEngine on
      RewriteCond %{HTTPS} off
      RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301]
  </IfModule>
</VirtualHost>

<IfModule mod_ssl.c>
  <VirtualHost *:443>
    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/owncloud.crt
    SSLCertificateKeyFile /etc/ssl/private/owncloud.key
    SSLCompression off
    #SSLSessionTickets off # httpd =>  2.4.12

    # Cache HSTS (mod_headers required, 31536000 seconds = 1 year).
    # A décommenter une fois que t'as une conf HTTPS fonctionnelle. En remplaçant 31536000 par la durée en seconde
    # de la validité de ton certif si cette durée est inférieure à un an
    # Header always set Strict-Transport-Security "max-age=31536000"
  </VirtualHost>
</IfModule>



Activation des modules rewrite et ssl

a2enmod rewrite ssl



Vérification d'erreurs de syntaxe

apachectl -t


Syntax OK



Recharge de la conf de apache que s'il y a eu le message "Syntax OK"

systemctl reload apache2.service



Par contre s'il y a des message d'erreurs. il me les faudra pour que je puisse corriger l'erreur.
C'est pas exclut apache retourne une erreur étant donné que jai pas de quoi tester et je suis plus habitué a nginx que apache. Donc la conf que j'ai donné est un peu approximative

Questîon. Pourquoi ownCloud et pass NextCloud qui est un fork plus actif, ownCloud est un projes mourant/délaissé en faveur de NextCloud (quand l'éditeur de ownCloud a commencé à le négliger volontairement pour vendre la version propio).


If I heat my SSD until it becomes a gazeous state drive, will it enable cloud computing?
There's no algorithm, just someone's else decision-making process.

Hors ligne

#3 04-12-2017 14:45:01

cestiopis
Membre
Inscription : 04-12-2017

Re : Mon serveur apache2 ne prend pas en charge ma conf ssl

Salut devnull et merci pour ton aide.
j'ai donc testé ton code et j'ai une erreur sur

apachectl -t


Syntax error on line 34 of /etc/apache2/sites-enabled/000-default.conf: </VirtualHost> without matching <VirtualHost> section


J'ai essayé de voir mais je comprend pas "without matching"

Hors ligne

#4 04-12-2017 15:01:02

cestiopis
Membre
Inscription : 04-12-2017

Re : Mon serveur apache2 ne prend pas en charge ma conf ssl

J'ai un doute aussi sur le fichier /etc/apache2/apache2.conf

<Directory />
        Options FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

<Directory /usr/share>
        AllowOverride None
        Require all granted
</Directory>
<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all denied
</Directory>


Je ne sais pas si il faut tout mettre en All et all granted ?
*Désoler pour les couleurs

Dernière modification par cestiopis (04-12-2017 16:19:22)

Hors ligne

#5 04-12-2017 15:22:29

bendia
Admin stagiaire
Distrib. : Stretch (et un peu Jessie)
Noyau : Linux 4.9.0-2-amd64
(G)UI : Gnome + Console
Inscription : 20-03-2012
Site Web

Re : Mon serveur apache2 ne prend pas en charge ma conf ssl

cestiopis a écrit :

*Désoler pour les couleurs

tu peux le corriger, il suffit de cliquer sur lenlien modifier en bas de ton message et de mettre apache à la place de root après le = dans la balise code smile


Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.
file-Re06858991f6f328b4907296ac5cea283

Hors ligne

#6 04-12-2017 16:15:53

devnull
Membre
Distrib. : Debian stable
Noyau : Linux 4.9
(G)UI : LXDE
Inscription : 30-11-2017

Re : Mon serveur apache2 ne prend pas en charge ma conf ssl

cestiopis a écrit :

Salut devnull et merci pour ton aide.
j'ai donc testé ton code et j'ai une erreur sur

apachectl -t


Syntax error on line 34 of /etc/apache2/sites-enabled/000-default.conf: </VirtualHost> without matching <VirtualHost> section


J'ai essayé de voir mais je comprend pas "without matching"



Ça veut dire que tu as une balise fermante </VirtualHost> sans la balise ouvrante correspondante (<VirtualHost> sans le slash)

T'as probablement d'autres bloc Virtualhost dans le même fichier et que t'as mis ma conf dans un endroit du fichier qui fait que Apache n'arrive à trouver le <VirtualHost> de début de bloc qui correspondant au </VirtualHost> de la ligne 34. Si tu trouve pas il me faudra la totalité du fichier du conf pour identifier la source exacte du problème.

Le mieux, ça reste d'avoir ton virtualhost owncloud dans un fichier à part dans un chemin de type /etc/apache2/sites-available/owncloud

Tu désactive le default et tu active ton Virtualhost owncloud avec

rm /etc/apache2/sites-enabled/000-default
a2ensite owncloud
 

Dernière modification par devnull (04-12-2017 16:56:31)


If I heat my SSD until it becomes a gazeous state drive, will it enable cloud computing?
There's no algorithm, just someone's else decision-making process.

Hors ligne

#7 04-12-2017 17:41:48

cestiopis
Membre
Inscription : 04-12-2017

Re : Mon serveur apache2 ne prend pas en charge ma conf ssl

J'ai supprimer le fichier 000-default
mis la partie ssl dans default-ssl
et le reste dans owncloud
apres vérification :

Could not reliably determine the server's fully qualified domain name, using 192.168.1.27. Set the 'ServerName' directive globally to suppress this message
Syntax OK



voila le fichier default-ssl

<IfModule mod_ssl.c>
        <VirtualHost *:443>
                ServerAdmin webmaster@localhost
                SSLEngine on
                SSLCertificateFile /etc/ssl/certs/owncloud.crt
                SSLCertificateKeyFile /etc/ssl/private/owncloud.key
                SSLCompression off
                #SSLSessionTickets off # httpd =>  2.4.12
                # Cache HSTS (mod_headers required, 31536000 seconds = 1 year).
                # A décommenter une fois que t'as une conf HTTPS fonctionnelle.$
                # de la validité de ton certif si cette durée est inférieure à $
                # Header always set Strict-Transport-Security "max-age=31536000"
               
                <FilesMatch "\.(cgi|shtml|phtml|php)$">
                                SSLOptions +StdEnvVars
                </FilesMatch>
                <Directory /usr/lib/cgi-bin>
                                SSLOptions +StdEnvVars
                </Directory>
        </VirtualHost>
</IfModule>



Le fichier owncloud

<VirtualHost *:80>
  ServerName cestiolabs.zapto.org
  DocumentRoot /var/www/html/owncloud
  <IfModule mod_rewrite.c>
      RewriteEngine on
      RewriteCond %{HTTPS} off
      RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301]
  </IfModule>
</VirtualHost>

Hors ligne

#8 05-12-2017 16:01:58

devnull
Membre
Distrib. : Debian stable
Noyau : Linux 4.9
(G)UI : LXDE
Inscription : 30-11-2017

Re : Mon serveur apache2 ne prend pas en charge ma conf ssl

cestiopis a écrit :

J'ai supprimer le fichier 000-default
mis la partie ssl dans default-ssl
et le reste dans owncloud
apres vérification :

Could not reliably determine the server's fully qualified domain name, using 192.168.1.27. Set the 'ServerName' directive globally to suppress this message
Syntax OK



J'ai une idée d'où ça vient. Vérifies si dans ton fichier /etc/apache2/apache2.conf, t'a une ligne ServerName commentée (précédée par #)
Si t'en a une, retire le commentaire et remplace l'adresse donnée en exemple à cette ligne par cestiolabs.zapto.org. S'il y a un numéro de port du genre :80, tu peux le retirer (Si on le laisse, je sais pas comment ça se comportera quand on force la redirection vers le port 443. En théorie ça ne devrait pas gêner. En pratique je préfère le minimum de conf vitale sans surplus quand je connais pas le comportement exacte du logiciel dans ce cas)

Si t'en a pas, rajoute toute la ligne (à la fin du fichier /etc/apache2/apache2.conf)

ServerName cestiolabs.zapto.org


If I heat my SSD until it becomes a gazeous state drive, will it enable cloud computing?
There's no algorithm, just someone's else decision-making process.

Hors ligne

#9 06-12-2017 11:45:19

cestiopis
Membre
Inscription : 04-12-2017

Re : Mon serveur apache2 ne prend pas en charge ma conf ssl

En effet ca a réparé mais malheureusement d'autre erreur sont apparu comme le fichier .key qui est vide etc ...
Du coup j'ai décidé de partir sur un système clean et réinstallant l'os.
Malheureusement j'ai décidé de mettre mes fichiers sur un dure ext résultat sur l'explorer : Forbidden You don't have permission to access /nextcloud on this server.
J'ai changé les droit avec un chown www-data mais rien y fait.
J'ai formaté en ext4 mis les droits et toujours pareil.

Dernière modification par cestiopis (06-12-2017 13:19:32)

Hors ligne

#10 06-12-2017 15:53:41

devnull
Membre
Distrib. : Debian stable
Noyau : Linux 4.9
(G)UI : LXDE
Inscription : 30-11-2017

Re : Mon serveur apache2 ne prend pas en charge ma conf ssl

cestiopis a écrit :

En effet ca a réparé mais malheureusement d'autre erreur sont apparu comme le fichier .key qui est vide etc ....
J'ai formaté en ext4 mis les droits et toujours pareil.


C'est pas normal… T'es sur que ta commande pour générer ta clé était correcte t que le process n'a pas été inttérompu en cours d’exécution avant d'écrire dans le fichier key?

cestiopis a écrit :


Malheureusement j'ai décidé de mettre mes fichiers sur un dure ext résultat sur l'explorer : Forbidden You don't have permission to access /nextcloud on this server.
J'ai changé les droit avec un chown www-data mais rien y fait.
J'ai formaté en ext4 mis les droits et toujours pareil.



C'est normal. Le serveur web ne peut heureusement pas accéder a tous les répertoires de ton système. Il existe plusieurs façon de pouvoir mettre tes données dans un disque externe en autorisant apache à y accéder. Mais le plus propre' c'est soi
- Installer tout ton OS dans un disque externe (sauf la partition de boot parce que le RPi ne sait pas démarrer sur autre chose que la carte  SD, saur ça a changé dans les derniers RPi) de façon a ce que le répertoire web (/var/www/) soit déja sur le disque externe
- Bidouiller ton filesystem pour que le disque externe soit monté comme une partition /var et non pas comme /mnt/$nomdudisque ou /mount/nomdudisque (ou autre emplacement auquel un serveur web n'a pas/ne doit pas avoir accès)


If I heat my SSD until it becomes a gazeous state drive, will it enable cloud computing?
There's no algorithm, just someone's else decision-making process.

Hors ligne

#11 09-12-2017 02:14:38

cestiopis
Membre
Inscription : 04-12-2017

Re : Mon serveur apache2 ne prend pas en charge ma conf ssl

J'ai tout réinstallé et trouvé un super tuto pour nextcloud sur rasbian.
https://soozx.fr/nextcloud12-raspberry-stretch/
Donc apparement c'était le générateur de clef qui fonctionnait pas. J'utilisé openssl et en faite avec cerbot cela fonctionne :

apt install python-certbot-apache


certbot --apache


Tout fonctionne parfaitement mon site est sécurisé, normalement.
J'ai juste un autre souci c'est l'upload de gros fichier de +600mo. Mais bon l'essentiel est là.
Merci pour ton aide et ton temps Devnull, ca m'a bien aidé.

Hors ligne

Pied de page des forums