web-dev-qa-db-fra.com

Je ne peux pas redémarrer apace2 si j'ouvre le port SSL 443 dans le fichier `/etc/Apache2/ports.conf` sous ubuntu 18.04LTS

Je rencontre un problème dans 18.04. Je souhaite configurer le protocole SSL pour mon site Web, je modifie donc le profil dans etc/Apache2/ports.conf et j'ajoute la ligne comme Listen 443, mais je service Apache2 restart le service apahce ne peut pas être redémarré mais cela fonctionne parfaitement dans 16.04 comme cela. Ensuite, je supprime la ligne Listen 443 et le service Apache fonctionne à nouveau ..

Il dit: Job for Apache2.service failed because the control process exited with error code.See "systemctl status Apache2.service" and "journalctl -xe" for details.

journalctl -xe:

 ubuntu apachectl[2867]: AH00526: Syntax error on line 8 of /etc/Apache2/ports.conf:
 ubuntu apachectl[2867]: Cannot define multiple Listeners on the same IP:port
 ubuntu apachectl[2867]: Action 'start' failed.
 ubuntu apachectl[2867]: The Apache error log may have more information.
 ubuntu systemd[1]: Apache2.service: Control process exited, code=exited status=1
 ubuntu systemd[1]: Apache2.service: Failed with result 'exit-code'.
 ubuntu systemd[1]: Failed to start The Apache HTTP Server.

La ligne 8 correspond à ce que j’ajoute. Elle fonctionne correctement dans 16.04 si je fais la même chose, je veux savoir si quelque chose a changé dans 18.04?

1
OBENMO

J'ai mené une petite enquête - oui, il existe un comportement différent entre les versions d'Apache2 fournies avec Ubuntu 16.04 et Ubuntu 18.04.

  • 16.04 est livré avec Apache/2.4.18 et il n’importe comment Plusieurs fois, vous répéterez des directives Listen identiques - je l’ai testée sur une machine virtuelle.

  • 18.04 est livré avec Apache/2.4.29 et dans le documentation Apache2.4 actuelle est écrit:

    Condition d'erreur

    Plusieurs directives d'écoute pour la même adresse IP et le même port généreront un message d'erreur Address déjà utilisé.

Dans votre cas, la directive Listen 443 apparaît deux fois dans la configuration d'Apache. Par conséquent, selon ces nouvelles règles, il est normal de recevoir l'erreur ci-dessus.

Par défaut, dans ports.conf, la directive Listen 443 est jointe aux balises <IfModule>, comme suit:

Listen 80

<IfModule ssl_module>
        Listen 443
</IfModule>

<IfModule mod_gnutls.c>
        Listen 443
</IfModule>

Cela signifie qu'il ne sera actif que lorsque mod_ssl (ou mod_gnutls) est activé. Donc, si vous avez activé mod_ssl, vous n'avez pas besoin d'ajouter de Listen 443 supplémentaire.


Vous pouvez rechercher combien de fois et où la directive Listen 443 apparaît dans votre configuration à l'aide de la commande:

grep -rni 'listen 443' /etc/Apache2/

Vous pouvez vérifier quels modules d'Apache sont activés à l'aide de la ou des commandes:

Sudo apachectl -M
Sudo apachectl -M | grep 'ssl\|tls'

Vous pouvez vérifier si un service écoute le port 443 et lequel est-ce par les commandes:

Sudo lsof -i -n -P | grep ':443'
Sudo netstat -peanut | grep ':443'

Pour en savoir plus: Comment sécuriser Apache avec Let's Encrypt .

0
pa4080