apache2 Perintah 'SSLEngine' tidak valid

108

Ketika saya memulai kembali httpd, saya mendapatkan kesalahan berikut. Apa yang saya lewatkan?

[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

Saya telah menginstal mod_ssl menggunakan 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 saya terlihat seperti ini

<VirtualHost *:80>
#    ServerName shop.itmanx.com
    ServerAdmin [email protected]

    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 [email protected]

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

Jawaban:

52

Mungkin Anda tidak memuat modul ssl. Anda harus memiliki direktif LoadModule di suatu tempat di file konfigurasi apache Anda.

Sesuatu seperti:

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

Biasanya templat konfigurasi apache memiliki (pada distribusi apa pun) file bernama (sesuatu seperti) loadmodule.confdi mana Anda harus menemukan LoadModulearahan untuk setiap modul yang Anda muat ke dalam apache saat server mulai.

andcoz
sumber
7
Juga, itu perlu untuk menginstal mod_ssl. Pada RHEL dan CentOS, ini dilakukan dengan yum install mod_ssl.
Benedikt Köppel
2
Untuk Apache 2.4, silakan instal mod24_ssl
Alejandro Pablo Tkachuk
sudo a2enmod ssl
thoni56
137

Pada banyak sistem (Ubuntu, Suse, Debian, ...) jalankan perintah berikut untuk mengaktifkan mod SSL Apache:

sudo a2enmod ssl

halaman manual a2enmod

Stéphane
sumber
4
Ini khusus untuk Debian tetapi pertanyaannya bukan untuk menandai Debian.
jordanm
1
apakah a2enmod benar-benar spesifik untuk Debian? Atau apakah Anda mengeluh tentang penggunaan sudo?
Stéphane
4
a2enmodkhusus untuk Debian. Ia mengelola symlink untuk cara Debian membagi konfigurasi apache. Perintah Anda setara denganln -s /etc/apache2/mods-{available,enabled}/ssl.load; ln -s /etc/apache2/mods-{available,enabled}/ssl.conf
jordanm
1
a2enmodjuga digunakan pada suse.
dr0i
20

Pada CentOS 7 menginstal paket "mod_ssl" dan memulai kembali server apache bekerja untuk saya:

yum install mod_ssl
systemctl restart httpd
Falco Preiseni
sumber
17

solusi httpd24:

yum install mod24_ssl
dtbarne
sumber
1
Itu mungkin hanya berfungsi untuk (beberapa) distribusi berbasis RPM saja. Yang mana? Mengapa ini memperbaiki masalah?
vonbrand
Bekerja di Amazon Linux dan Centos untuk saya. Ini khusus untuk Apache 2.4.
dtbarne
2

Pada Ubntu 18,04 bionik.

sudo a2enmod ssl; sudo service apache2 restart

pumpkin_cat
sumber
1
Jawaban kedua sudah merekomendasikan sudo a2enmod ssl;Mungkin Anda harus menambahkan komentar di sana untuk me-restart server setelah perubahan.
Isaac