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

Мої сайти.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
Алехандро Пабло Ткачук

sudo a2enmod ssl
thoni56

137

У багатьох системах (Ubuntu, Suse, Debian, ...) виконайте таку команду, щоб увімкнути SSL-модуль Apache:

sudo a2enmod ssl

Сторінка a2enmod man


4
Це специфічно для Debian, але питання не позначене Debian.
Йорданм

1
справді специфічний De2 для Debian? Або ти скаржишся на використання судо?
Стефан

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

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-розподілів. Який? Чому це усуває проблему?
фонбранд

Для мене працювали в 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.