apache2 Lệnh không hợp lệ 'SSLEngine'


108

Khi tôi khởi động lại httpd, tôi gặp lỗi sau. Tôi đang thiếu gì?

[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

Tôi đã cài đặt mod_ssl bằng 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

Trang web của tôi trông giống như thế này

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

Câu trả lời:


52

Có lẽ bạn không tải mô-đun ssl. Bạn nên có một lệnh LoadModule ở đâu đó trong các tệp cấu hình apache của bạn.

Cái gì đó như:

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

Thông thường mẫu cấu hình apache có (trên bất kỳ bản phân phối nào) một tệp có tên (giống như) loadmodule.conftrong đó bạn sẽ tìm thấy một lệnh LoadModulecho mỗi mô-đun bạn tải vào apache khi máy chủ khởi động.


7
Ngoài ra, nó là cần thiết để cài đặt mod_ssl. Trên RHEL và CentOS, điều này được thực hiện với yum install mod_ssl.
Benedikt Köppel

2
Đối với Apache 2.4, bạn cài đặt mod24_ssl
Alejandro Pablo Tkachuk

sudo a2enmod ssl
thoni56

137

Trên nhiều hệ thống (Ubuntu, Suse, Debian, ...) chạy lệnh sau để bật mod SSL của Apache:

sudo a2enmod ssl

trang người đàn ông a2enmod


4
Đây là phần dành riêng cho Debian nhưng câu hỏi không được gắn thẻ Debian.
jordanm

1
a2enmod có thực sự là Debian cụ thể không? Hay bạn đang phàn nàn về việc sử dụng sudo?
Stéphane

4
a2enmodlà cụ thể của Debian. Nó quản lý các liên kết tượng trưng cho cách Debian chia các cấu hình apache. Lệnh của bạn tương đương vớiln -s /etc/apache2/mods-{available,enabled}/ssl.load; ln -s /etc/apache2/mods-{available,enabled}/ssl.conf
jordanm

1
a2enmodcũng được sử dụng trên suse.
dr0i

20

Trên CentOS 7 cài đặt gói "mod_ssl" và khởi động lại máy chủ apache làm việc cho tôi:

yum install mod_ssl
systemctl restart httpd

17

Giải pháp httpd24:

yum install mod24_ssl

1
Điều đó có lẽ chỉ hoạt động cho (một số) phân phối dựa trên RPM. Cái nào? Tại sao nó khắc phục vấn đề?
vonbrand

Đã làm việc trên Amazon Linux và Centos cho tôi. Nó đặc biệt dành cho Apache 2.4.
dtbarne

2

Trên Ubntu 18.04 bionic.

sudo a2enmod ssl; sudo dịch vụ apache2 khởi động lại


1
Câu trả lời thứ hai đã được đề xuất sudo a2enmod ssl;Có lẽ bạn nên thêm một nhận xét ở đó để khởi động lại máy chủ sau khi thay đổi.
Isaac
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.