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 при запуске сервера.

andcoz
источник
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

Stéphane
источник
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
Falco Preiseni
источник
17

httpd24 решение:

yum install mod24_ssl
dtbarne
источник
1
Предположительно это работает только для (некоторых) RPM-дистрибутивов. Который из? Почему это решает проблему?
vonbrand
Работал на Amazon Linux и Centos для меня. Это специально для Apache 2.4.
dtbarne
2

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

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

pumpkin_cat
источник
1
Второй ответ уже рекомендуется. sudo a2enmod ssl;Возможно, вам следует добавить туда комментарий, чтобы перезагрузить сервер после изменения.
Исаак