smeserver-certificates/root/etc/e-smith/templates/usr/bin/hook-script.sh/20challenges
Jean-Philippe Pialasse e631a1dffc * Wed Feb 12 2025 Jean-Philippe Pialasse <jpp@koozali.org> 11.0-2.sme
- move smanager panel in package [SME: 12916]
- add Requires
- add templates from smeserver-letsencrypt
- use /var/www/html/.well-known/acme-challenge
2025-02-13 01:05:14 -05:00

77 lines
2.7 KiB
Plaintext

{
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";
}
}
}