Non puoi selezionare più di 25 argomenti
Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.
77 righe
2.9 KiB
77 righe
2.9 KiB
#!/bin/sh -e |
|
set -x |
|
SERVER_NAME='autenticazione.lavoripubblici.sicilia.it' |
|
CERTBOT_EMAIL='admin@mwg.it' |
|
DOCUMENT_ROOT='/var/www/html' |
|
|
|
MARIADB_USERNAME='mwg' |
|
MARIADB_PASSWORD='Aw42#1e_w.as' |
|
MARIADB_DATABASE='autenticazione' |
|
|
|
FOLDER="$(dirname $(realpath $0))" |
|
|
|
apt update |
|
apt -y dist-upgrade |
|
apt install -y apache2 certbot cron libapache2-mod-auth-openidc mariadb-server php php-mysql python |
|
|
|
# OpenSSL |
|
sed -i -e 's/^CipherString = .*/CipherString = DEFAULT@SECLEVEL=1/' /etc/ssl/openssl.cnf |
|
|
|
# MariaDB |
|
# mysql -e "DROP DATABASE IF EXISTS \`$MARIADB_DATABASE\`;" |
|
if [ "0" = "$(mysql -B -N -e "SHOW DATABASES LIKE '$MARIADB_DATABASE';" | wc -l)" ]; then |
|
mysql < $FOLDER/file/autenticazione.sql |
|
fi |
|
if [ "0" = "$(mysql -B -N -e \ |
|
"SELECT \`User\` FROM \`mysql\`.\`user\` WHERE \`User\`='$MARIADB_USERNAME' AND \`Host\`='localhost';" | \ |
|
wc -l)" ]; then |
|
mysql -e "GRANT ALL PRIVILEGES ON \`$MARIADB_DATABASE\`.* TO '$MARIADB_USERNAME'@'localhost' IDENTIFIED BY \ |
|
'$MARIADB_PASSWORD'" |
|
fi |
|
sed -i -e "s/\\(\\s*'password'\\s*=>\\s*\\).*/\\1'$MARIADB_PASSWORD',/" /var/www/App/Config/database.php |
|
|
|
# Sshd |
|
mkdir -p /etc/ssh/sshd_config.d |
|
echo 'PasswordAuthentication no' > /etc/ssh/sshd_config.d/mwg.conf |
|
|
|
# Autenticazione |
|
cp $FOLDER/usr-local-bin/* /usr/local/bin |
|
. /usr/local/bin/project_env.sh |
|
echo "export SERVER_NAME=$SERVER_NAME" >> /usr/local/bin/project_env.sh |
|
echo "export APPLICATION_URL=https://$SERVER_NAME:443" >> /usr/local/bin/project_env.sh |
|
|
|
# Apache |
|
cp $FOLDER/file/ssl-params.conf /etc/apache2/conf-available/ |
|
if [ "$(grep /usr/local/bin/project_env.sh /etc/apache2/envvars | wc -l)" = "0" ]; then |
|
echo '. /usr/local/bin/project_env.sh' >> /etc/apache2/envvars |
|
fi |
|
a2enconf ssl-params |
|
a2enmod headers |
|
a2enmod rewrite |
|
a2enmod ssl |
|
cd /etc/apache2/sites-enabled |
|
find /etc/apache2/sites-enabled -type l -exec sh -c 'a2dissite $(basename {})' \; |
|
cp $FOLDER/file/0certbot.conf /etc/apache2/sites-available |
|
a2ensite 0certbot |
|
systemctl restart apache2 |
|
|
|
certbot certonly -d $SERVER_NAME --webroot --webroot-path /var/www/certbot -m $CERTBOT_EMAIL --agree-tos \ |
|
--non-interactive --no-eff-email --expand |
|
|
|
mkdir -p /etc/apache2/keys |
|
cp $FOLDER/metadata/private.pem $FOLDER/metadata/public.pem /etc/apache2/keys |
|
cp $FOLDER/file/1autenticazione.conf /etc/apache2/sites-available |
|
a2ensite 1autenticazione |
|
|
|
/usr/local/bin/auto-update-gov-certificates |
|
|
|
# Cronjob |
|
cp $FOLDER/cron/* /etc/cron.d |
|
|
|
echo Installazione terminata |
|
|
|
# apt purge --auto-remove apache2 certbot cron libapache2-mod-auth-openidc mariadb-server php php-mysql python;rmdir /var/lib/apache2/;rm -Rf /etc/ssl/itaca/ |
|
|
|
# openssl req -key private.pem -new -x509 -days 3650 -subj /C=IT/ST=Sicilia/O=Regione Siciliana/OU=Autenticazione Lavori Pubblici/CN=Autenticazione Lavori Pubblici -out cert.pem |
|
# openssl pkcs12 -export -inkey private.pem -in cert.pem -out keys.pfx -name autenticazione |
|
# keytool -v -list -keystore keys.pfx
|
|
|