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 เมื่อเซิร์ฟเวอร์เริ่มต้น


7
mod_sslนอกจากนี้ก็มีความจำเป็นในการติดตั้ง บน RHEL และ CentOS yum install mod_sslนี้จะทำด้วย
Benedikt Köppel

2
สำหรับ Apache 2.4 มันคือ yum ติดตั้ง mod24_ssl
Alejandro Pablo Tkachuk

sudo a2enmod ssl
thoni56

137

ในหลาย ๆ ระบบ (Ubuntu, Suse, Debian, ... ) ให้รันคำสั่งต่อไปนี้เพื่อเปิดใช้งาน SSL mod ของ Apache:

sudo a2enmod ssl

a2enmod man page


4
นี่คือเฉพาะ Debian แต่คำถามไม่ได้ติดแท็ก Debian
jordanm

1
a2enmod เป็นเดเบียนที่เฉพาะเจาะจงจริงๆเหรอ? หรือคุณกำลังบ่นเกี่ยวกับการใช้ sudo?
Stéphane

4
a2enmodเป็นเฉพาะเดเบียน มันจัดการ symlinks สำหรับวิธี 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 (บางส่วน) เท่านั้น อันไหน? เหตุใดจึงแก้ไขปัญหาได้
vonbrand

ทำงานบน Amazon Linux และ Centos สำหรับฉัน มันเฉพาะสำหรับ Apache 2.4
dtbarne

2

บน Ubntu 18.04 ไบโอนิค

sudo a2enmod ssl; sudo service apache2 เริ่มต้นใหม่


1
คำตอบที่สองแนะนำไปแล้วsudo a2enmod ssl;บางทีคุณควรเพิ่มความคิดเห็นที่นั่นเพื่อรีสตาร์ทเซิร์ฟเวอร์หลังจากการเปลี่ยนแปลง
ไอแซค
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.