Skip to content

apache_ssl_14.sh

cheinle edited this page Feb 10, 2017 · 1 revision

#! /bin/bash/

#Usage: source apache_ssh_certificate.sh
#Creates self-signed SSL Certificate based on Digital Oceans guide
#https://www.digitalocean.com/community/tutorials/how-to-create-a-ssl-certificate-on-apache-for-ubuntu-14-04
#Assumes a version of Ubuntu 14 and sudo access

#Activate SSL Module
sudo a2enmod ssl
sudo service apache2 restart

#Create the SSL Certificate
sudo mkdir /etc/apache2/ssl
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt

#Configure Apache to Use SSL
read -p "What is your email address? : " email
read -p "What is your server domain or ip address? : " server_domain

echo "<IfModule mod_ssl.c>
            <VirtualHost _default_:443>
                ServerAdmin $email
                ServerName $server_domain

                DocumentRoot /var/www/html

                ErrorLog ${APACHE_LOG_DIR}/error.log
                CustomLog ${APACHE_LOG_DIR}/access.log combined

                SSLEngine on

                SSLCertificateFile /etc/apache2/ssl/apache.crt
                SSLCertificateKeyFile /etc/apache2/ssl/apache.key

                <FilesMatch "\.(cgi|shtml|phtml|php)$">
                                SSLOptions +StdEnvVars
                </FilesMatch>
                <Directory /usr/lib/cgi-bin>
                                SSLOptions +StdEnvVars
                </Directory>

                BrowserMatch "MSIE [2-6]" \
                                nokeepalive ssl-unclean-shutdown \
               &nbsp                downgrade-1.0 force-response-1.0

                </VirtualHost>
</IfModule> " | sudo tee /etc/apache2/sites-available/default-ssl.conf > /dev/null

#Activate the SSL VirtualHost
sudo a2ensite default-ssl
sudo service apache2 restart