blob: 9d52b6a62b922a569315b9577fe1df28555ddc57 [file] [log] [blame]
# This bash script is internally used by sslinfo test
function sslinfo_prepare() {
echo "Enable SSL in postgresql.conf with master only..."
standby_data=`gpstate -f | sed -n '/Standby data directory/s/.*Standby data directory\s\+=\s*//p'`
echo "#BEGIN SSLINFO CONF : BEGIN ANCHOR##" >> $MASTER_DATA_DIRECTORY/postgresql.conf
echo "ssl=on" >> $MASTER_DATA_DIRECTORY/postgresql.conf
echo "ssl_ciphers='HIGH:MEDIUM:+3DES:!aNULL'" >> $MASTER_DATA_DIRECTORY/postgresql.conf
echo "ssl_cert_file='server.crt'" >> $MASTER_DATA_DIRECTORY/postgresql.conf
echo "ssl_key_file='server.key'" >> $MASTER_DATA_DIRECTORY/postgresql.conf
echo "ssl_ca_file='root.crt'" >> $MASTER_DATA_DIRECTORY/postgresql.conf
echo "#END SSLINFO CONF : END ANCHOR##" >> $MASTER_DATA_DIRECTORY/postgresql.conf
echo "#BEGIN SSLINFO CONF : BEGIN ANCHOR##" >> $standby_data/postgresql.conf
echo "ssl=on" >> $standby_data/postgresql.conf
echo "ssl_ciphers='HIGH:MEDIUM:+3DES:!aNULL'" >> $standby_data/postgresql.conf
echo "ssl_cert_file='server.crt'" >> $standby_data/postgresql.conf
echo "ssl_key_file='server.key'" >> $standby_data/postgresql.conf
echo "ssl_ca_file='root.crt'" >> $standby_data/postgresql.conf
echo "#END SSLINFO CONF : END ANCHOR##" >> $standby_data/postgresql.conf
echo "preparing CRTs and KEYs"
cp -f data/root.crt $MASTER_DATA_DIRECTORY/
cp -f data/server.crt $MASTER_DATA_DIRECTORY/
cp -f data/server.key $MASTER_DATA_DIRECTORY/
chmod 400 $MASTER_DATA_DIRECTORY/server.key
chmod 644 $MASTER_DATA_DIRECTORY/server.crt
chmod 644 $MASTER_DATA_DIRECTORY/root.crt
cp -f data/root.crt $standby_data/
cp -f data/server.crt $standby_data/
cp -f data/server.key $standby_data/
chmod 400 $standby_data/server.key
chmod 644 $standby_data/server.crt
chmod 644 $standby_data/root.crt
mkdir -p ~/.postgresql
cp -f data/root.crt ~/.postgresql/
cp -f data/postgresql.crt ~/.postgresql/
cp -f data/postgresql.key ~/.postgresql/
chmod 400 ~/.postgresql/postgresql.key
chmod 644 ~/.postgresql/postgresql.crt
chmod 644 ~/.postgresql/root.crt
}
function sslinfo_clean() {
echo "restore SSL in postgresql.conf with master only"
standby_data=`gpstate -f | sed -n '/Standby data directory/s/.*Standby data directory\s\+=\s*//p'`
sed -i '/#BEGIN SSLINFO CONF : BEGIN ANCHOR##/,/#END SSLINFO CONF : END ANCHOR##/d' $MASTER_DATA_DIRECTORY/postgresql.conf
sed -i '/#BEGIN SSLINFO CONF : BEGIN ANCHOR##/,/#END SSLINFO CONF : END ANCHOR##/d' $standby_data/postgresql.conf
}
case "$1" in
prepare)
sslinfo_prepare
;;
clean)
sslinfo_clean
;;
*)
echo "$0 { prepare | clean }"
exit 1
esac