Merge branch 'master' into 'master'

added scripts

See merge request entgra/community-product!2
merge-requests/3/merge
Pahansith Gunathilake 3 years ago
commit 27c9b8caa7

@ -68,6 +68,11 @@
<outputDirectory>${entgra-iot-core}/bin</outputDirectory>
<fileMode>755</fileMode>
</fileSet>
<fileSet>
<directory>src/core/scripts</directory>
<outputDirectory>${entgra-iot-core}/scripts</outputDirectory>
<fileMode>755</fileMode>
</fileSet>
<fileSet>
<directory>src/core/resources</directory>
<outputDirectory>${entgra-iot-core}/repository/deployment/server/webapps/authenticationendpoint</outputDirectory>

@ -0,0 +1,161 @@
#!/bin/bash
echo ""
echo "----------------------------------------"
echo "Entgra IoT Server IP configuration tool"
echo "----------------------------------------"
##################################### IP configs related to core ####################################
echo ""
echo ">>> Step 1: Change current IP address of the IoT server"
echo ""
echo "Please enter the IoT Core IP that you need to replace (if you are trying out IoT server for the first time this will be localhost)"
read -r val1;
while [[ -z $val1 ]]; do #if $val1 is a zero length String
echo "Please enter the IoT Core IP that you need to replace (if you are trying out IoT server for the first time this will be localhost)"
read -r val1;
done
echo ""
echo "Please enter your current IP"
read -r val2;
while [[ -z $val2 ]]; do #if $val2 is a zero length String
echo "Please enter your current IP"
read -r val2;
done
echo "--------------------------------------"
echo "All your " + "$val1" + " IP's are replaced with " + "$val2" ;
echo "--------------------------------------"
echo "Changing <IoT_HOME>/repository/conf/deployment.toml"
sed -i -e 's/'"$val1"'/'"$val2"'/g' ../repository/conf/deployment.toml
echo "Completed!!"
echo "Changing <IoT_HOME>/bin/iot-server.sh"
sed -i -e 's/'"$val1"'/'"$val2"'/g' ../bin/iot-server.sh
echo "Completed!!"
echo "Changing <IoT_HOME>/bin/iot-server.bat"
sed -i -e 's/'"$val1"'/'"$val2"'/g' ../bin/iot-server.bat
echo "Completed!!"
echo ""
echo "-----------------------------------------------"
echo "Generating SSL certificates for the IoT Server"
echo "-----------------------------------------------"
echo ""
B_SUBJ=''
C_SUBJ=''
A_SUBJ=''
SAN_NAMES=''
slash='/'
equal='='
buildSubject(){
if [ "$1" = "CN" ]; then
echo "Please provide Common Name "
read -r val
while [[ -z $val ]]; do #if $val is a zero length String
echo "Common name(your server IP/hostname) cannot be null. Please enter the Common name."
read -r val;
done
if [ -n "$val" ]; then #This is true if $val is not empty (If $val is not a non zero length String)
if [ "$3" = "C" ]; then
C_SUBJ="$C_SUBJ$slash$1$equal$val"
return
elif [ "$3" = "B" ]; then
B_SUBJ="$B_SUBJ$slash$1$equal$val"
return
else
A_SUBJ="$A_SUBJ$slash$1$equal$val"
return
fi
fi
fi
echo "Please provide ""$2"". Press Enter to skip."
read -r val;
if [ -n "$val" ]; then #If $val is not a zero length String; This is same as if[ -n $val]; then
if [ "$3" = "C" ]; then
C_SUBJ="$C_SUBJ$slash$1$equal$val"
return
elif [ "$3" = "B" ]; then
B_SUBJ="$B_SUBJ$slash$1$equal$val"
return
elif [ "$3" = "S" ]; then
SAN_NAMES="DNS:$val$4$SAN_NAMES"
buildSubject 'SAN' 'SAN' 'S' ','
return
else
A_SUBJ="$A_SUBJ$slash$1$equal$val"
return
fi
fi
}
if [ -d "tmp" ]; then
rm -rf tmp
fi
mkdir tmp
echo ''
echo '=======Enter Values for IoT Core SSL Certificate======='
buildSubject 'C' 'Country' 'C'
buildSubject 'ST' 'State' 'C'
buildSubject 'L' 'Location' 'C'
buildSubject 'O' 'Organization' 'C'
buildSubject 'OU' 'Organizational Unit' 'C'
buildSubject 'emailAddress' 'Email Address' 'C'
buildSubject 'CN' 'Common Name' 'C'
buildSubject 'SAN' 'SAN' 'S'
echo ""
echo 'Provided IoT Core SSL Subject : ' "$C_SUBJ"
echo 'If you have a different IoT Core Keystore password please enter it here. Press Enter to use the default password.'
read -r -s password
if [ -n "$password" ]; then
SSL_PASS=$password
else
SSL_PASS="wso2carbon"
fi
echo ""
echo "Generating SSL Certificate for IoT Core"
openssl genrsa -out ./tmp/c.key 4096
openssl req -new -key ./tmp/c.key -out ./tmp/c.csr -subj "$C_SUBJ"
if [ -z "$SAN_NAMES" ]; then
openssl x509 -req -days 730 -in ./tmp/c.csr -signkey ./tmp/c.key -set_serial 044324884 -sha256 -out ./tmp/c.crt
else
openssl x509 -req -extfile <(printf "subjectAltName=%s" "$SAN_NAMES") -days 730 -in ./tmp/c.csr -signkey ./tmp/c.key -set_serial 044324884 -sha256 -out ./tmp/c.crt
fi
echo "Export to PKCS12"
openssl pkcs12 -export -out ./tmp/CKEYSTORE.p12 -inkey ./tmp/c.key -in ./tmp/c.crt -name "wso2carbon" -password pass:$SSL_PASS
echo "Export PKCS12 to JKS"
keytool -importkeystore -srckeystore ./tmp/CKEYSTORE.p12 -srcstoretype PKCS12 -destkeystore ../repository/resources/security/wso2carbon.jks -deststorepass wso2carbon -srcstorepass wso2carbon -noprompt
keytool -importkeystore -srckeystore ./tmp/CKEYSTORE.p12 -srcstoretype PKCS12 -destkeystore ../repository/resources/security/client-truststore.jks -deststorepass wso2carbon -srcstorepass wso2carbon -noprompt
echo ""
echo "Setting up the public certificate for the default idp"
if hash tac; then
VAR=$(keytool -exportcert -alias wso2carbon -keystore ../repository/resources/security/wso2carbon.jks -rfc -storepass wso2carbon | tail -n +2 | tac | tail -n +2 | tac | tr -cd "[:print:]");
else
VAR=$(keytool -exportcert -alias wso2carbon -keystore ../repository/resources/security/wso2carbon.jks -rfc -storepass wso2carbon | tail -n +2 | tail -r | tail -n +2 | tail -r | tr -cd "[:print:]"); fi
echo ""
echo "Printing certificate"
echo "-----------------------"
echo "$VAR"
echo ""
echo "Configuration Completed!!!"

@ -0,0 +1,53 @@
#!/bin/bash
echo ""
echo "----------------------------------------"
echo "Entgra IoT Server Super Admin Credentials Changing tool"
echo "----------------------------------------"
##################################### Super Admin Credentials Change ####################################
echo ""
echo ">>> Change current super admin username and password of the IoT server"
echo ""
echo "Please enter the old username and password of the IoTS super Admin"
echo "if you are trying out IoTS for the first time username/password will be 'admin/admin'"
echo "Old Username : "
read val1;
echo "Old Password : "
read val2;
while [[ -z $val1 || -z $val2 ]]; do #if $val1 is a zero length String
echo "Username or Password couldn't be empty, Hence Re-Enter old username and password of IoTS Super Admin"
echo "Old Username : "
read val1;
echo "Old Password : "
read val2;
done
echo ""
echo "Please enter the new password of the IoTS super admin"
echo "New Username : "
read val3;
echo "New Password : "
read val4;
while [[ -z $val3 || -z $val4 ]]; do #if $val2 is a zero length String
echo "Username or Password couldn't be empty, Hence Re-Enter new username and password of IoTS Super Admin"
echo "New Username : "
read val3;
echo "New Password : "
read val4;
done
username = "admin"
password = "admin"
echo "Changing <IoT_HOME>/repository/conf/deployment.toml"
sed -i -e 's/username = "'$val1'"/username = "'$val3'"/g' ../repository/conf/deployment.toml
sed -i -e 's/password = "'$val2'"/password = "'$val4'"/g' ../repository/conf/deployment.toml
echo "Completed!!"
echo ""
echo "Configuration Completed!!!"