#1 Le 24/02/2016, à 14:37
- Aeroyeur
[Résolu] Serveur apache2 ne fonctionne pas avec a2enmod ssl
Bonjour,
Ayant mit en place un petit serveur web pour illustrer un projet de cours, je me retrouve dans une situation assez embêtante.
Mon projet portant sur tout ce qui est sécurité dans les communications internets, j'ai pensé que ce serait une bonne idée d'illustrer ce que je dirai en créant un site bénéficiant d'un certificat d'authentification fait par moi-même. J'ai donc crée (très vite fait) un site avec wordpress, je peux y accéder sans problème.
J'ai donc crée un certificat avec openssl, la clé publique, enfin tout ce qui va bien.
J'ai indiqué dans les dossiers de configuration d'apache le chemin où se trouvait le certificat et la clé du certificat, dans les fichiers default-ssl.conf :
#/etc/apache2/sites-enabled/default-ssl.conf
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/wordpress
# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
# For most configuration files from conf-available/, which are
# enabled or disabled at a global level, it is possible to
# include a line for only one particular virtual host. For example the
# following line enables the CGI configuration for this host only
# after it has been globally disabled with "a2disconf".
#Include conf-available/serve-cgi-bin.conf
# SSL Engine Switch:
# Enable/Disable SSL for this virtual host.
SSLEngine on
# A self-signed (snakeoil) certificate can be created by installing
# the ssl-cert package. See
# /usr/share/doc/apache2/README.Debian.gz for more info.
# If both key and certificate are stored in the same file, only the
# SSLCertificateFile directive is needed.
SSLCertificateFile /etc/apache2/ssl/serv.crt
SSLCertificateKeyFile /etc/apache2/ssl/serv.key
(le reste du fichier a été laissé comme il a été crée
et pareil pour le fichier /etc/apache2/sites-available/default-ssl.conf. Tous mes fichiers concernant le certificat étant dans le dossier /etc/apache2/ssl/.
Je lance alors la commande
sudo a2enmod ssl
qui me dit de redémarrer mon serveur apache2, ce que je fais, cependant j'obtiens cette erreur :
Job for apache2.service failed. See 'systemctl status apache2.service' and 'journalctl -xn' for details.
Et en regardant les deux commandes qu'il me propose :
● apache2.service - LSB: Apache2 web server
Loaded: loaded (/etc/init.d/apache2)
Active: failed (Result: exit-code) since Wed 2016-02-24 13:31:21 UTC; 47s ago
Process: 2084 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS)
Process: 1339 ExecReload=/etc/init.d/apache2 reload (code=exited, status=1/FAILURE)
Process: 2110 ExecStart=/etc/init.d/apache2 start (code=exited, status=1/FAILURE)
Feb 24 13:31:01 raspberrypi apache2[2110]: Starting web server: apache2AH005...e
Feb 24 13:31:01 raspberrypi apache2[2110]: (98)Address already in use: AH000...3
Feb 24 13:31:21 raspberrypi apache2[2110]: failed!
Feb 24 13:31:21 raspberrypi apache2[2110]: The apache2 instance did not star....
Feb 24 13:31:21 raspberrypi systemd[1]: apache2.service: control process exi...1
Feb 24 13:31:21 raspberrypi systemd[1]: Failed to start LSB: Apache2 web server.
Feb 24 13:31:21 raspberrypi systemd[1]: Unit apache2.service entered failed ....
Hint: Some lines were ellipsized, use -l to show in full.
-- Logs begin at Wed 2016-02-24 13:04:52 UTC, end at Wed 2016-02-24 13:32:42 UTC
Feb 24 13:31:21 raspberrypi apache2[2110]: The apache2 instance did not start wi
Feb 24 13:31:21 raspberrypi systemd[1]: apache2.service: control process exited,
Feb 24 13:31:21 raspberrypi systemd[1]: Failed to start LSB: Apache2 web server.
-- Subject: Unit apache2.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit apache2.service has failed.
--
-- The result is failed.
Feb 24 13:31:21 raspberrypi systemd[1]: Unit apache2.service entered failed stat
Feb 24 13:31:21 raspberrypi sudo[2073]: pam_unix(sudo:session): session closed f
Feb 24 13:32:09 raspberrypi sudo[2177]: pi : TTY=pts/0 ; PWD=/etc/apache2/ssl ;
Feb 24 13:32:09 raspberrypi sudo[2177]: pam_unix(sudo:session): session opened f
Feb 24 13:32:09 raspberrypi sudo[2177]: pam_unix(sudo:session): session closed f
Feb 24 13:32:42 raspberrypi sudo[2191]: pi : TTY=pts/0 ; PWD=/etc/apache2/ssl ;
Feb 24 13:32:42 raspberrypi sudo[2191]: pam_unix(sudo:session): session opened f
J'obtiens les mêmes erreurs que je sois en root ou pas.
Ai-je oublié une étape ? Ai-je mal configuré les fichiers apache ? Si quelqu'un a une petite idée, je suis preneur, merci ! : )
Dernière modification par Aeroyeur (Le 27/02/2016, à 17:13)
Hors ligne
#2 Le 24/02/2016, à 15:24
- bobe
Re : [Résolu] Serveur apache2 ne fonctionne pas avec a2enmod ssl
Bonjour,
Consultez le log d'erreurs d'apache pour en savoir plus : $ less /var/log/apache2/error.log
Vérifiez si les ports 80 ou 443 ne sont pas déjà utilisés : $ netstat -tpl
Dernière modification par bobe (Le 24/02/2016, à 15:25)
Hors ligne
#3 Le 24/02/2016, à 18:56
- HPIR40
Re : [Résolu] Serveur apache2 ne fonctionne pas avec a2enmod ssl
Quand je vois ça dans tes logs
Feb 24 13:31:01 raspberrypi apache2[2110]: Starting web server: apache2AH005...e
Feb 24 13:31:01 raspberrypi apache2[2110]: (98)Address already in use: AH000...3
Feb 24 13:31:21 raspberrypi apache2[2110]: failed!
je pense tout de suite, comme bobe, qu'il y a déjà un serveur web sur le 443
Hors ligne
#4 Le 24/02/2016, à 21:39
- Aeroyeur
Re : [Résolu] Serveur apache2 ne fonctionne pas avec a2enmod ssl
En lancant la commande
less /var/log/apache2/error.log
, j'obtiens :
[Wed Feb 24 13:30:59.911749 2016] [mpm_prefork:notice] [pid 1965] AH00169: caught SIGTERM, shutting down
[Wed Feb 24 13:31:01.410294 2016] [ssl:warn] [pid 2125] AH01909: 127.0.1.1:443:0 server certificate does NOT include an ID which matches the server name
[Wed Feb 24 13:33:51.299664 2016] [ssl:warn] [pid 2241] AH01909: 127.0.1.1:443:0 server certificate does NOT include an ID which matches the server name
[Wed Feb 24 13:37:19.406093 2016] [mpm_prefork:notice] [pid 2333] AH00163: Apache/2.4.10 (Raspbian) configured -- resuming normal operations
[Wed Feb 24 13:37:19.406416 2016] [core:notice] [pid 2333] AH00094: Command line: '/usr/sbin/apache2'
D'après ce que je comprends, je me serai loupé sur le certificat, non ?
Quand au 443, la seule chose que j'ai faite est de rajouter un "Listen 443" dans le fichier /etc/apache2/ports.conf, est-ce une erreur ?
La commande nestat me renvoie :
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 localhost:mysql *:* LISTEN 909/mysqld
tcp 0 0 *:666 *:* LISTEN 449/sshd
tcp6 0 0 [::]:666 [::]:* LISTEN 449/sshd
quand apache2 n'est pas activé, et :
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 localhost:mysql *:* LISTEN 909/mysqld
tcp 0 0 *:666 *:* LISTEN 449/sshd
tcp6 0 0 [::]:http [::]:* LISTEN 4482/apache2
tcp6 0 0 [::]:666 [::]:* LISTEN 449/sshd
tcp6 0 0 [::]:https [::]:* LISTEN 4482/apache2
quand apache2 est activé.
Hors ligne
#5 Le 24/02/2016, à 22:10
- bobe
Re : [Résolu] Serveur apache2 ne fonctionne pas avec a2enmod ssl
Corrigez le certificat. Le nom du virtualhost doit se retrouver dans le CN du subject ou dans l'extension subjectAltName
edit: En fait, votre virtualhost doit avoir un ServerName, et celui-ci doit correspondre au CN du sujet du certificat ou à une entrée DNS du champ subjectAltName du certificat.
Dernière modification par bobe (Le 24/02/2016, à 22:11)
Hors ligne
#6 Le 27/02/2016, à 17:13
- Aeroyeur
Re : [Résolu] Serveur apache2 ne fonctionne pas avec a2enmod ssl
Bonjour,
désolé du temps de réponse un peu élevé.
J'ai corrigé les erreurs dues au ServerName, et changé le port 443 pour passer au 448 (Il me disait que le 443 était déjà utilisé, ce qui m'est resté impossible à voir, j'ai donc opté pour le changement de port plutôt) et après un redémarrage d'Apache, tout fonctionne correctement.
Merci pour vos conseils, je passe en résolu !
Edit: Je viens de trouver à l'instant pourquoi ce message d'erreur à propos du port 443 apparaissait. Une petite bêtise dans le fichier /etc/apache2/ports.conf qui le faisait écouter plusieurs fois sur le port 443. Mon problème est donc entièrement réglé.
Dernière modification par Aeroyeur (Le 27/02/2016, à 18:01)
Hors ligne