#!/bin/bash
# Author: Chekunov Artem
# scorp.dev.null@gmail.com
# Latest version: https://github.com/sc0rp1us/Good-scripts.sh/blob/master/sh/a2ssl
if [ `id -u` -ne 0 ]
then
echo 'Run the script as root'
exit 1
fi
if [ -x /usr/sbin/make-ssl-cert ]
then
echo 'make-ssl-cert installed'
else
apt-get install make-ssl-cert -y
fi
if [ ! -f /etc/apache2/ssl/apache.pem ]
then
mkdir /etc/apache2/ssl
make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem
a2enmod ssl
fi
clear
if [ -z $1 ]
then
echo "now avalible sites:
`ls /etc/apache2/sites-available/ | egrep -v '^.*-ssl$'`
Please enter the sitename to enable ssl access:"
read SNAME
else
SNAME=$1
fi
if [ ! -f /etc/apache2/sites-available/${SNAME} ]
then
echo "The site /etc/apache2/sites-available/${SNAME} not avalible:"
exit 1
fi
if [ -L /etc/apache2/sites-enabled/${SNAME}-ssl ]
then
echo "The site /etc/apache2/sites-enabled/${SNAME}-ssl exist:"
exit 1
fi
cp /etc/apache2/sites-available/${SNAME} /etc/apache2/sites-available/${SNAME}-ssl
sed -i -e 's/<VirtualHost\ \*:80>/NameVirtualHost *:80\n<VirtualHost\ \*:80>/g' /etc/apache2/sites-available/${SNAME}
sed -i -e 's/<VirtualHost\ \*:80>/NameVirtualHost *:443\n<VirtualHost\ \*:443>/g' /etc/apache2/sites-available/${SNAME}-ssl
sed -i -e 's/<\/VirtualHost>/\tSSLEngine on\n\tSSLCertificateFile\ \/etc\/apache2\/ssl\/apache.pem\n<\/VirtualHost>/g' /etc/apache2/sites-available/${SNAME}-ssl
a2ensite ${SNAME}-ssl
/etc/init.d/apache2 restart