apache2 Niepoprawne polecenie „SSLEngine”


108

Po ponownym uruchomieniu httpd pojawia się następujący błąd. czego mi brakuje?

[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

Zainstalowałem mod_ssl używając 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

Mój site.conf wygląda następująco

<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>

Odpowiedzi:


52

Prawdopodobnie nie ładujesz modułu ssl. Powinieneś mieć dyrektywę LoadModule gdzieś w plikach konfiguracyjnych apache.

Coś jak:

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

Zwykle szablon konfiguracji apache ma (w dowolnej dystrybucji) plik o nazwie (coś podobnego), loadmodule.confw którym powinieneś znaleźć LoadModuledyrektywę dla każdego modułu ładowanego do apache podczas uruchamiania serwera.


7
Ponadto konieczne jest zainstalowanie mod_ssl. W przypadku RHEL i CentOS odbywa się to za pomocą yum install mod_ssl.
Benedikt Köppel

2
W przypadku Apache 2.4 instalujemy yum mod24_ssl
Alejandro Pablo Tkachuk

sudo a2enmod ssl
thoni56

137

W wielu systemach (Ubuntu, Suse, Debian, ...) uruchom następujące polecenie, aby włączyć mod SSL Apache:

sudo a2enmod ssl

Strona podręcznika a2enmod


4
Jest to specyficzne dla Debiana, ale pytanie nie jest otagowane.
Jordan

1
czy a2enmod naprawdę jest specyficzny dla Debiana? A może narzekasz na korzystanie z sudo?
Stéphane

4
a2enmodjest specyficzny dla Debiana. Zarządza dowiązaniami symbolicznymi w sposób, w jaki Debian dzieli konfiguracje apache. Twoje polecenie jest równoważne zln -s /etc/apache2/mods-{available,enabled}/ssl.load; ln -s /etc/apache2/mods-{available,enabled}/ssl.conf
jordanm

1
a2enmodjest również używany na suse.
dr0i

20

Na CentOS 7 instalacja pakietu „mod_ssl” i ponowne uruchomienie serwera Apache działało dla mnie:

yum install mod_ssl
systemctl restart httpd

17

rozwiązanie httpd24:

yum install mod24_ssl

1
To prawdopodobnie działa tylko dla (niektórych) dystrybucji opartych na RPM. Który? Dlaczego rozwiązuje problem?
vonbrand,

Pracowałem dla Amazon Linux i Centos dla mnie. Jest specjalnie dla Apache 2.4.
dtbarne

2

Na Ubntu 18.04 bionic.

sudo a2enmod ssl; usługa sudo apache2 restart


1
Druga odpowiedź już poleca sudo a2enmod ssl;Może powinieneś dodać tam komentarz, aby zrestartować serwer po zmianie.
Izaak
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.