Я не могу перезапустить apace2, если я открываю порт SSL 443 в файле '/etc/apache2/ports.conf 'в человечности 18.04LTS

Я вкладываю проблему 18.04.I хотят настроить SSL для моего веб-сайта, таким образом, я изменяю профиль в etc/apache2/ports.conf и добавьте строку как Listen 443, но когда я делаю service apache2 restart апачский сервис не может быть перезапущен, но он просто хорошо работает в 16.04 как этот. Затем я удаляю строку Listen 443 и сервис Apache работает снова..

Это говорит: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.

Строка 8, что я добавляю.. Это работа дозы в 16.04 если я делаю то же самое, я хочу знать, что-либо измененное в 18.04?

1
задан 28 August 2018 в 09:54

1 ответ

Я провел маленькое расследование - да там другое поведение между версиями Apache2, которые идут с Ubuntu 16.04 и Ubuntu 18.04.

  • 16.04 идет с Apache/2.4.18 и существует, неважно, сколько раз Вы повторите идентичный, Слушают директивы - я протестировал это на виртуальной машине.

  • 18.04 идет с Apache/2.4.29, и в текущей документации Apache2.4 записан:

    Состояние ошибки

    Несколько Слушают, директивы для того же IP-адреса и порта уже приведут к Адресу используемое сообщение об ошибке.

В Вашем случае директива Listen 443 появляется дважды в рамках конфигурации Apache, таким образом, согласно этим новым правилам нормально получить вышеупомянутую ошибку.

По умолчанию, в ports.conf, директива Listen 443 с включают <IfModule> теги, следующим образом:

Listen 80

<IfModule ssl_module>
        Listen 443
</IfModule>

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

Это означает, что будет активно только когда mod_ssl (или mod_gnutls) включен. Так, если Вы включили mod_ssl, Вы не должны помещать никого дополнительного Listen 443.


Можно заняться расследованиями сколько раз и где директива Listen 443 появляется в Вашей конфигурации командой:

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

Можно проверить, какие модули Apache включены командой (командами):

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

Можно проверить, слушает ли какой-либо сервис порт 443 и который является им командами:

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

Дальнейшее чтение: Как защитить Apache с, Давайте Зашифруем.

0
ответ дан 7 December 2019 в 23:38

Другие вопросы по тегам:

Похожие вопросы: