147

When I restart httpd, I get the following error. What am I missing?

[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

I have installed mod_ssl using 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

My sites.conf looks like this

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

6 Answers 6

179

On many systems (Ubuntu, Suse, Debian, ...) run the following command to enable Apache's SSL mod:

sudo a2enmod ssl

a2enmod man page

5
  • 4
    This is Debian-specific but the question is not tagged Debian.
    – jordanm
    Feb 18, 2015 at 1:32
  • 2
    is a2enmod really Debian specific? Or are you complaining about the use of sudo?
    – Stéphane
    Feb 18, 2015 at 2:08
  • 4
    a2enmod is Debian specific. It manages symlinks for the way Debian splits apache configurations. Your command is the equivalent of ln -s /etc/apache2/mods-{available,enabled}/ssl.load; ln -s /etc/apache2/mods-{available,enabled}/ssl.conf
    – jordanm
    Feb 18, 2015 at 3:43
  • 1
    a2enmod is also used on suse.
    – dr0i
    Feb 24, 2016 at 16:01
  • ..and on Ubuntu
    – YakovL
    Jul 15, 2021 at 16:55
66

Probably you do not load the ssl module. You should have a LoadModule directive somewhere in your apache configuration files.

Something like:

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

Usually apache configuration template has (on any distribution) a file called (something like) loadmodule.conf in which you should find a LoadModule directive for each module you load into apache at server start.

6
  • 9
    Also, it's necessary to install mod_ssl. On RHEL and CentOS, this is done with yum install mod_ssl. Apr 18, 2018 at 18:13
  • 2
    For Apache 2.4 it is yum install mod24_ssl Mar 14, 2019 at 16:58
  • 12
    sudo a2enmod ssl
    – thoni56
    Aug 9, 2019 at 13:46
  • @AlejandroPabloTkachuk there is No package mod24_ssl available. For me just yum install mod_ssl worked perfectly.
    – vijay
    Nov 1, 2019 at 22:46
  • 1
    @vijay the name of the package and how to enable it is distribution dependent. In addition, the package name can change in time.
    – andcoz
    Nov 4, 2019 at 14:55
31

On CentOS 7 installing the package "mod_ssl" and restarting the apache server worked for me:

yum install mod_ssl
systemctl restart httpd
1
18

httpd24 solution:

yum install mod24_ssl
2
  • 1
    That presumably works for (some) RPM-based distributions only. Which one? Why does it fix the problem?
    – vonbrand
    Feb 17, 2016 at 0:07
  • Worked on Amazon Linux and Centos for me. It's specifically for Apache 2.4.
    – dtbarne
    Feb 23, 2016 at 16:39
3

On Ubntu 18.04 bionic.

sudo a2enmod ssl
sudo service apache2 restart
1
  • 1
    The second answer already recomends sudo a2enmod ssl; Maybe you should add a comment there to restart the server after the change.
    – user232326
    Aug 15, 2018 at 8:13
0

I received the same error while installing the SSL Certificate on my website. I have fixed it by executing the following command in the terminal.

# yum install mod_ssl
# httpd -t
# systemctl restart httpd

I am sure that the above commands will fix your error.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .