{ use strict; use warnings; use esmith::ConfigDB; my $configDB = esmith::ConfigDB->open_ro or die("can't open Config DB"); my $letsencryptStatus = $configDB->get_prop( 'letsencrypt', 'status' ) || 'disabled'; my $hookscript = $configDB->get_prop( 'letsencrypt', 'hookScript' ) || 'disabled'; my $host = $configDB->get_prop( 'letsencrypt', 'host' ) || ''; my $user = $configDB->get_prop( 'letsencrypt', 'user' ) || ''; my $path = $configDB->get_prop( 'letsencrypt', 'path' ) || ''; if ( $letsencryptStatus ne 'disabled' && $hookscript eq 'enabled' && $host ne '' && $user ne '' && $path ne '' ) { $OUT .= "if [[ \$1 == \"deploy_challenge\" ]]; then\n"; $OUT .= " CHALLENGE_FILE=\$3\n"; $OUT .= " CHALLENGE_CONTENT=\$4\n"; $OUT .= " HOST=\"$host\" # FQDN or IP of public-facing server\n"; $OUT .= " USER=\"$user\" # username on public-facing server\n"; $OUT .= " REMOTE_PATH=\"$path\"\n"; $OUT .= " if scp \$WELLKNOWN/\$CHALLENGE_FILE \$USER@\$HOST:\$REMOTE_PATH/\$CHALLENGE_FILE; then\n"; $OUT .= " exit 0\n"; $OUT .= " else\n"; $OUT .= " echo \" Failed to deploy challenge !\" \n "; $OUT .= " exit 1 \n "; $OUT .= " fi \n "; $OUT .= "fi \n "; $OUT .= "\n"; $OUT .= " if [[ \$1 == \"clean_challenge\" ]]; then\n"; $OUT .= " CHALLENGE_FILE=\$3\n"; $OUT .= " HOST=\"$host\" # FQDN or IP of public-facing server\n"; $OUT .= " USER=\"$user\" # username on public-facing server\n"; $OUT .= " REMOTE_PATH=\"$path\"\n"; $OUT .= " if ssh \$USER\@\$HOST \"rm \$REMOTE_PATH/\$CHALLENGE_FILE\"; then\n"; $OUT .= " exit 0\n"; $OUT .= " else\n"; $OUT .= " echo \" Failed to clean challenge !\" \n "; $OUT .= " exit 1 \n "; $OUT .= " fi \n "; $OUT .= "fi \n "; } else { $OUT .= "# The following all have to be set to enable deploy/clean challenges\n"; $OUT .= "# \n"; if ( $hookscript ne '' ) { $OUT .= "# hookScript: $hookscript\n"; } else { $OUT .= "# hookScript: Not Set\n"; } if ( $host ne '' ) { $OUT .= "# host: $host\n"; } else { $OUT .= "# host: Not Set\n"; } if ( $user ne '' ) { $OUT .= "# user: $user\n"; } else { $OUT .= "# user: Not Set\n"; } if ( $path ne '' ) { $OUT .= "# path: $path\n"; } else { $OUT .= "# path: Not Set\n"; } } }