#!/bin/bash
echo "Введите данные для сертификата\n\n"
CERTGO=""
while [ "$CERTGO" != "Y" ] && [ "$CERTGO" != "y" ] && [ "$CERTGO" != "Yes" ] && [ "$CERTGO" != "yes" ]
do
echo "Наименование сертификата[smpo-server]:"
CERTNAME=""
read CERTNAME
if [ "$CERTNAME" == "" ]; then  CERTNAME="smpo-server"
fi
CERTNAME="$CERTNAME"".jks"
echo "Укажите место хранилища[/usr/local/smpo-server/conf/]:"
CERTPATH=""
read CERTPATH
if [ "$CERTPATH" = "" ]; then CERTPATH="/usr/local/smpo-server/conf/"
fi
#sudo mv /usr/local/smpo-server/conf/smpo-server.jks /usr/local/smpo-server/conf/smpo-server.jks.bak
echo "Имя владельца(common name) - CN:"
CN=""
read  CN
echo "Департамент/Отдел(organizational unit or department) - OU:"
OU=""
read OU
echo "Наименование организации(organization name) - O:"
O=""
read O
echo "Город/Местоположение(locality or city) - L:"
L=""
read L
C=""
echo "Страна(country) - C[RF]:"
read C
if [ "$C" == "" ]; then  C="RF"
fi
PERIOD=""
while [ "$PERIOD" = "" ]
do
echo "Срок действия сертификата(дней):"
read PERIOD
done
echo "Пароль к хранилищу сертификатов:"
STOREPASS=""
read STOREPASS
echo "Пароль сертификата:"
CERTPASS=""
read CERTPASS
echo "Проверьте введённые данные:"
echo "Хранилище сертификата: "$CERTPATH$CERTNAME
echo "CN: "$CN
echo "OU: "$OU
echo "O:  "$O
echo "L:  "$L
echo "C:  "$C
echo "Срок действия сертификата $PERIOD дней"
echo "Пароль к хранилищу: $STOREPASS"
echo "Пароль сертификата: $CERTPASS"
echo "Всё верно? Продолжить?[Y(es)/N(o)]: "
read CERTGO
done
sudo mv /usr/local/smpo-server/conf/smpo-server.jks /usr/local/smpo-server/conf/smpo-server.jks.bak
sudo /usr/lib/jvm/jre/bin/keytool -v -genkey -dname "CN=$CN, OU=$OU, O=$O, L=$L, C=$C" -alias parent -storetype jks -keystore $CERTPATH$CERTNAME -validity $PERIOD -keyalg RSA -keysize 2048 -storepass $STOREPASS -keypass $CERTPASS
sudo /usr/lib/jvm/jre/bin/keytool -importkeystore -srckeystore $CERTPATH$CERTNAME -destkeystore $CERTPATH$CERTNAME -deststoretype pkcs12 -storepass $STOREPASS -keypass $CERTPASS
exit 0
