Server IP : 195.201.23.43 / Your IP : 52.14.205.130 Web Server : Apache System : Linux webserver2.vercom.be 5.4.0-192-generic #212-Ubuntu SMP Fri Jul 5 09:47:39 UTC 2024 x86_64 User : kdecoratie ( 1041) PHP Version : 7.1.33-63+ubuntu20.04.1+deb.sury.org+1 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /usr/share/webmin/virtual-server/ |
Upload File : |
#!/usr/bin/perl # Save CA certificate require './virtual-server-lib.pl'; &ReadParseMime(); &error_setup($text{'chain_err'}); $d = &get_domain($in{'dom'}); &can_edit_domain($d) && &can_edit_ssl() || &error($text{'edit_ecannot'}); # Validate and store inputs $oldchain = &get_website_ssl_file($d, 'ca'); if ($in{'mode'} == 0) { # No file $chain = undef; } elsif ($in{'mode'} == 1) { # File on server if (&can_chained_cert_path()) { # Use new path, which must exist -r $in{'file'} || &error($text{'chain_efile'}); $data = &read_file_contents($in{'file'}); $err = &check_certificate_data($data); $err && &error(&text('chain_ecert', $err)); $chain = $in{'file'}; } else { # Stick with current $oldchain || &error($text{'chain_emode1'}); $chain = $oldchain; } } elsif ($in{'mode'} == 2) { # New uploaded file $in{'upload'} || &error($text{'chain_eupload'}); $err = &check_certificate_data($in{'upload'}); $err && &error(&text('chain_ecert', $err)); $chain = &default_certificate_file($d, 'ca'); &lock_file($chain); &unlink_file_as_domain_user($d, $chain); &write_ssl_file_contents($d, $chain, $in{'upload'}); &unlock_file($chain); } elsif ($in{'mode'} == 3) { # New pasted text $in{'paste'} =~ s/\r//g; $in{'paste'} || &error($text{'chain_epaste'}); $err = &check_certificate_data($in{'paste'}); $err && &error(&text('chain_ecert', $err)); $chain = &default_certificate_file($d, 'ca'); &lock_file($chain); &unlink_file_as_domain_user($d, $chain); &write_ssl_file_contents($d, $chain, $in{'paste'}); &set_permissions_as_domain_user($d, 0755, $chain); &unlock_file($chain); } # Run the before command &set_domain_envs($d, "SSL_DOMAIN", $d); $merr = &making_changes(); &reset_domain_envs($d); &error(&text('setup_emaking', "<tt>$merr</tt>")) if (defined($merr)); @beforecerts = &get_all_domain_service_ssl_certs($d); # Apply it, including domains that share a cert &set_all_null_print(); &obtain_lock_ssl($d); $err = &save_website_ssl_file($d, 'ca', $chain); &error($err) if ($err); $d->{'ssl_chain'} = $chain; &sync_combined_ssl_cert($d); # Update other services using the cert &update_all_domain_service_ssl_certs($d, \@beforecerts); &release_lock_ssl($d); &save_domain($d); foreach $od (&get_domain_by("ssl_same", $d->{'id'})) { next if (!&domain_has_ssl_cert($od)); $od->{'ssl_chain'} = $chain; &save_website_ssl_file($od, 'ca', $chain); &save_domain($od); } # Run the after command &set_domain_envs($d, "SSL_DOMAIN"); local $merr = &made_changes(); &$second_print(&text('setup_emade', "<tt>$merr</tt>")) if (defined($merr)); &reset_domain_envs($d); &run_post_actions(); &domain_redirect($d);Private