To enable SSL in for a web site in Apache, you need to copy the non SSL virtual host entry and make a new entry for SSL enabled Virtual Host.
Let says we have a virtual host entry like following.
<VirtualHost *:80> DocumentRoot "/home/hostonnet.com/public" ServerName www.hostonnet.com ServerAlias hostonnet.com <Directory "/home/hostonnet.com/public"> Options All AllowOverride All Require all granted </Directory> </VirtualHost>
Find
<VirtualHost *:80>
Replace with
<VirtualHost *:443>
Inside virtual host entry, add
SSLEngine on SSLCertificateFile /etc/apache2/ssl/hostonnet.com.crt SSLCertificateKeyFile /etc/apache2/ssl/hostonnet.com.key SSLCACertificateFile /etc/apache2/ssl/hostonnet.com.ca
Replace with to .crt, .key and .ca files with your own SSl certificate location.
New VirtualHost entry will look like
<VirtualHost *:443> DocumentRoot "/home/hostonnet.com/public" ServerName www.hostonnet.com ServerAlias hostonnet.com SSLEngine on SSLCertificateFile /etc/apache2/ssl/hostonnet.com.crt SSLCertificateKeyFile /etc/apache2/ssl/hostonnet.com.key SSLCACertificateFile /etc/apache2/ssl/hostonnet.com.ca <Directory "/home/hostonnet.com/public"> Options All AllowOverride All Require all granted </Directory> </VirtualHost>
Ubuntu – Enable mod_ssl
To enable mod_ssl in Ubuntu, run
a2enmod ssl service apache2 restart
If you are on Ubuntu, save the virtual host entry as
vi /etc/apache2/sites-available/YOURDOMAIN.EXTN-ssl.conf
Now activate the site with
a2ensite YOURDOMAIN.EXTN-ssl service apache2 restart
See also Enable SSL in Nginx and SSL