Added nginx CT
This commit is contained in:
94
CT-Files/nginx/Scripts/AddDomain.sh
Normal file
94
CT-Files/nginx/Scripts/AddDomain.sh
Normal file
@@ -0,0 +1,94 @@
|
||||
#!/bin/ash
|
||||
|
||||
self=$0
|
||||
create=false
|
||||
request=false
|
||||
|
||||
show_help () {
|
||||
cat <<END_HELP
|
||||
Usage: $self [-c] [-r] <Domain name>
|
||||
|
||||
Options:
|
||||
-c, Will create nginx config for domain
|
||||
-r, Will request ssl for domain
|
||||
|
||||
END_HELP
|
||||
}
|
||||
|
||||
while getopts crh opt; do
|
||||
case $opt in
|
||||
c) create=true ;;
|
||||
r) request=true ;;
|
||||
h) show_help
|
||||
exit ;;
|
||||
*) echo 'Error in parsing options' >&2
|
||||
exit 1
|
||||
esac
|
||||
done
|
||||
|
||||
shift "$(( OPTIND - 1 ))"
|
||||
for domain do
|
||||
domain=$domain
|
||||
done
|
||||
|
||||
#if no flags given quit with help promt
|
||||
if ! $create && ! $request; then
|
||||
echo "No option set"
|
||||
show_help
|
||||
exit 1
|
||||
fi
|
||||
|
||||
#if only request test if domain exists
|
||||
if ! $create && $request; then
|
||||
if ! test -f /etc/nginx/sites-enabled/"$domain" ; then
|
||||
echo 'Domain does not exist yet, please create it using the `-c` option'
|
||||
show_help
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
echo $domain
|
||||
echo $create
|
||||
echo $request
|
||||
|
||||
if $create; then
|
||||
mkdir -p /etc/acmesh/inst/$domain
|
||||
cp /etc/nginx/sites-available/nginx_template_nossl /etc/nginx/sites-available/"$domain"_nossl
|
||||
sed -i -e 's/DOMAINname/'$domain'/g' /etc/nginx/sites-available/"$domain"_nossl
|
||||
cp /etc/nginx/sites-available/nginx_template_ssl /etc/nginx/sites-available/"$domain"_ssl
|
||||
sed -i -e 's/DOMAINname/'$domain'/g' /etc/nginx/sites-available/"$domain"_ssl
|
||||
ln -s /etc/nginx/sites-available/"$domain"_nossl /etc/nginx/sites-enabled/"$domain"
|
||||
service nginx reload
|
||||
fi
|
||||
|
||||
if $request; then
|
||||
#Backing-up and removing current config
|
||||
sed -n '/#beginConf/,/#endConf/p' /etc/nginx/sites-available/"$domain"_nossl > /tmp/"$domain"-config
|
||||
sed -n -i '/#beginConf/{:a;N;/#endConf/!ba;N;s/.*\n/#ConfHere\n/};p' /etc/nginx/sites-available/"$domain"_nossl
|
||||
service nginx reload
|
||||
|
||||
#Enabling SSL
|
||||
/opt/acmesh/acme.sh --config-home '/etc/acmesh/data' --issue --nginx --ocsp --keylength 'ec-384' -d "$domain"
|
||||
certsatus=$?
|
||||
|
||||
if test $certsatus -eq 0
|
||||
then
|
||||
site_ext="ssl"
|
||||
mkdir -p /etc/acmesh/inst/$domain
|
||||
/opt/acmesh/acme.sh --config-home '/etc/acmesh/data' --install-cert --ecc --domain $domain --cert-file /etc/acmesh/inst/$domain/cert.pem --key-file /etc/acmesh/inst/$domain/key.pem --ca-file /etc/acmesh/inst/$domain/ca.cer --fullchain-file /etc/acmesh/inst/$domain/fullchain.pem --reloadcmd 'service nginx reload'
|
||||
else
|
||||
site_ext="nossl"
|
||||
rm -rf /etc/acmesh/certs/$domain*
|
||||
echo "LE failed, restoring configuration"
|
||||
fi
|
||||
unset certsatus
|
||||
|
||||
#Restoring config
|
||||
sed -i -e "1,/^#ConfHere/s/\(^#Conf.*\)/#ConfHere1 /" -e "/#ConfHere1/ r /tmp/"$domain"-config" -e '/#ConfHere/c\' /etc/nginx/sites-available/"$domain"_"$site_ext"
|
||||
|
||||
|
||||
rm /etc/nginx/sites-enabled/"$domain"
|
||||
ln -s /etc/nginx/sites-available/"$domain"_"$site_ext" /etc/nginx/sites-enabled/"$domain"
|
||||
service nginx reload
|
||||
fi
|
||||
|
||||
9
CT-Files/nginx/Scripts/FirstRun.sh
Normal file
9
CT-Files/nginx/Scripts/FirstRun.sh
Normal file
@@ -0,0 +1,9 @@
|
||||
#!/bin/ash
|
||||
read -p "Enter the E-Mail to use for LE: " email
|
||||
openssl dhparam -dsaparam -out /etc/acmesh/certs/ssl-dhparams.pem 4096
|
||||
#Setup LE account in Acme.sh
|
||||
/opt/acmesh/acme.sh --config-home "/etc/acmesh/data" --register-account
|
||||
/opt/acmesh/acme.sh --config-home "/etc/acmesh/data" --update-account --accountemail "$email"
|
||||
|
||||
#Update ReadMe
|
||||
echo 'Use `ash /opt/AddDomain.sh` to add domains, and install SSL certs' > ~/ReadMe
|
||||
31
CT-Files/nginx/Scripts/Init.sh
Normal file
31
CT-Files/nginx/Scripts/Init.sh
Normal file
@@ -0,0 +1,31 @@
|
||||
#!/bin/ash
|
||||
#Setup Nginx repo
|
||||
echo "@nginx http://nginx.org/packages/mainline/alpine/v$(egrep -o '^[0-9]+\.[0-9]+' /etc/alpine-release)/main" >> /etc/apk/repositories
|
||||
mv /opt/Setup/nginx_signing.rsa.pub /etc/apk/keys/nginx_signing.rsa.pub
|
||||
|
||||
#Install Nginx
|
||||
apk add nginx@nginx
|
||||
|
||||
#Configure Nginx
|
||||
mkdir -p /etc/nginx/sites-available /etc/nginx/sites-enabled /etc/nginx/snippets /etc/nginx/modules-available /etc/nginx/modules-enabled /etc/nginx/snippets/
|
||||
rm -rf /etc/nginx/conf.d/*
|
||||
mv /opt/Setup/Configs/nginx.conf /etc/nginx/nginx.conf
|
||||
mv /opt/Setup/Configs/nginx_template_* /etc/nginx/sites-available/
|
||||
|
||||
#Install AcmeSH
|
||||
mkdir -p /opt/acmesh /etc/acmesh/data /etc/acmesh/certs
|
||||
tar -zxf /opt/Setup/acmesh.tar.gz -C /opt/acmesh --strip-components=1
|
||||
rm -rf /opt/Setup/acmesh.tar.gz
|
||||
|
||||
#Configure AcmeSH
|
||||
mv /opt/Setup/Configs/profile ~/.profile
|
||||
mv /opt/Setup/Configs/acmesh.conf /etc/acmesh/data/account.conf
|
||||
/opt/acmesh/acme.sh --home "/opt/acmesh/" --config-home "/etc/acmesh/data" --upgrade
|
||||
/opt/acmesh/acme.sh --config-home "/etc/acmesh/data" --set-default-ca --server letsencrypt
|
||||
echo '42 0 * * * "/opt/acmesh/acme.sh" --cron --home "/opt/acmesh/" --config-home "/etc/acmesh/data" > /dev/null' >> /etc/crontabs/root
|
||||
|
||||
#Add `AddDomain` script
|
||||
mv /opt/Setup/Scripts/AddDomain.sh /opt/AddDomain.sh
|
||||
|
||||
#Enable nginx on boot
|
||||
rc-update add nginx
|
||||
Reference in New Issue
Block a user