apache2 Неверная команда 'SSLEngine'


108

Когда я перезапускаю httpd, я получаю следующую ошибку. Что мне не хватает?

[root@localhost ~]# service httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd: Syntax error on line 22 of /etc/httpd/conf.d/sites.conf:
Invalid command 'SSLEngine', perhaps misspelled or defined by a module not included in the server configuration

Я установил mod_ssl используя yum install mod_ssl openssh

Package 1:mod_ssl-2.2.15-15.el6.centos.x86_64 already installed and latest version
Package openssh-5.3p1-70.el6_2.2.x86_64 already installed and latest version

Мой sites.conf выглядит так

<VirtualHost *:80>
#    ServerName shop.itmanx.com
    ServerAdmin webmaster@itmanx.com

    DocumentRoot /var/www/html/magento
    <Directory /var/www/html>
        Options -Indexes
        AllowOverride All
    </Directory>

    ErrorLog logs/shop-error.log
    CustomLog logs/shop-access.log
</VirtualHost>

<VirtualHost *:443>
    ServerName secure.itmanx.com
    ServerAdmin webmaster@itmanx.com

    SSLEngine on
    SSLCertificateFile /etc/httpd/ssl/secure.itmanx.com/server.crt
    SSLCertificateKeyFile /etc/httpd/ssl/secure.itmanx.com/server.key
    SSLCertificateChainFile /etc/httpd/ssl/secure.itmanx.com/chain.crt

    DocumentRoot /var/www/html/magento
    <Directory /var/www/html>
        Options -Indexes
        AllowOverride All
    </Directory>

    ErrorLog logs/shop-ssl-error.log
    CustomLog logs/shop-ssl-access.log    
</VirtualHost>

Ответы:


52

Возможно, вы не загружаете модуль ssl. Вы должны иметь директиву LoadModule где-нибудь в ваших файлах конфигурации apache.

Что-то вроде:

LoadModule ssl_module /usr/lib64/apache2-prefork/mod_ssl.so

Обычно шаблон конфигурации apache имеет (в любом дистрибутиве) файл с именем (что-то вроде), loadmodule.confв котором вы должны найти LoadModuleдирективу для каждого модуля, который вы загружаете в apache при запуске сервера.


7
Также необходимо установить mod_ssl. На RHEL и CentOS это делается с yum install mod_ssl.
Бенедикт Кеппел

2
Для Apache 2.4 это yum install mod24_ssl
Алехандро Пабло Ткачук

1
sudo a2enmod ssl
thoni56

137

Во многих системах (Ubuntu, Suse, Debian, ...) выполните следующую команду, чтобы включить SSL-мод Apache:

sudo a2enmod ssl

Страница man a2enmod


4
Это специфично для Debian, но вопрос не помечен как Debian.
Иордания

1
действительно ли a2enmod специфичен для Debian? Или вы жалуетесь на использование sudo?
Стефан

4
a2enmodявляется специфичным для Debian. Он управляет символическими ссылками для того, как Debian разбивает конфигурации Apache. Ваша команда эквивалентнаln -s /etc/apache2/mods-{available,enabled}/ssl.load; ln -s /etc/apache2/mods-{available,enabled}/ssl.conf
Иордания

1
a2enmodтакже используется на suse.
dr0i

20

На CentOS 7 установка пакета "mod_ssl" и перезапуск сервера apache работали для меня:

yum install mod_ssl
systemctl restart httpd

17

httpd24 решение:

yum install mod24_ssl

1
Предположительно это работает только для (некоторых) RPM-дистрибутивов. Который из? Почему это решает проблему?
vonbrand

Работал на Amazon Linux и Centos для меня. Это специально для Apache 2.4.
dtbarne

2

На Ubntu 18.04 бионический.

sudo a2enmod ssl; перезапуск службы sudo apache2


1
Второй ответ уже рекомендуется. sudo a2enmod ssl;Возможно, вам следует добавить туда комментарий, чтобы перезагрузить сервер после изменения.
Исаак
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.