@@ -8,6 +8,50 @@ term_proc() {
88
99trap term_proc SIGTERM
1010
11+ update_database_tls_config () {
12+ local key=" $1 "
13+ local value=" $2 "
14+ local config_file=" $3 "
15+ local enable=" $4 "
16+
17+ [[ -z " $key " || -z " $config_file " ]] && { echo " key/config_file required" ; return 1; }
18+ [[ ! -f " $config_file " ]] && { echo " Config file not found: $config_file " ; return 1; }
19+
20+ if [[ " $enable " == true && -z " $value " ]]; then
21+ # echo "Not setting $key as value is empty..."
22+ return 0
23+ fi
24+
25+ if [[ " $enable " == true && " $key " =~ ^(ssl_ca| ssl_cert| ssl_key)$ ]]; then
26+ if [[ ! -f " $value " ]]; then
27+ echo " Cannot configure TLS key $key : file $value does not exist..."
28+ return 1
29+ fi
30+ fi
31+
32+ local tmp
33+ tmp=" $( mktemp) "
34+
35+ if [[ " $enable " == true ]]; then
36+ if grep -qE " ^[[:space:]]*'${key} '[[:space:]]*=>" " $config_file " ; then
37+ sed -E " s@^([[:space:]]*'${key} '[[:space:]]*=>)[^,]*,@\1 '${value} ',@g" \
38+ " $config_file " > " $tmp "
39+ else
40+ sed -E " /public[[:space:]]+\\\$ default[[:space:]]*=[[:space:]]*\\ [/a\\
41+ '${key} ' => '${value} '," \
42+ " $config_file " > " $tmp "
43+ fi
44+ else
45+ sed -E " /^[[:space:]]*'${key} '[[:space:]]*=>/d" \
46+ " $config_file " > " $tmp "
47+ fi
48+
49+ if [[ -s " $tmp " ]]; then
50+ cat " $tmp " > " $config_file "
51+ fi
52+ rm -f " $tmp "
53+ }
54+
1155init_mysql (){
1256 # Test when MySQL is ready....
1357 # wait for Database come ready
121165 sed " s/db\s*password/$MYSQL_PASSWORD /" $MISP_APP_CONFIG_PATH /database.php > tmp; cat tmp > $MISP_APP_CONFIG_PATH /database.php; rm tmp
122166 sed " s/'database' => 'misp'/'database' => '$MYSQL_DATABASE '/" $MISP_APP_CONFIG_PATH /database.php > tmp; cat tmp > $MISP_APP_CONFIG_PATH /database.php; rm tmp
123167
168+ # Enable MySQL TLS immediately, as TLS requiring hosts like AWS RDS may banlist non-TLS connecting hosts
169+ # Conversely, this is also a good spot to disable it if required
170+
171+ update_database_tls_config ssl_ca " $MYSQL_TLS_CA " " $MISP_APP_CONFIG_PATH /database.php" " $MYSQL_TLS "
172+ update_database_tls_config ssl_cert " $MYSQL_TLS_CERT " " $MISP_APP_CONFIG_PATH /database.php" " $MYSQL_TLS "
173+ update_database_tls_config ssl_key " $MYSQL_TLS_KEY " " $MISP_APP_CONFIG_PATH /database.php" " $MYSQL_TLS "
174+
124175 echo " ... initialize email.php settings"
125176 chmod +w $MISP_APP_CONFIG_PATH /email.php
126177 tee $MISP_APP_CONFIG_PATH /email.php > /dev/null << EOT
0 commit comments