140

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

6 Answers 6

175

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
  • 11
    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.
    – done
    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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.