#!/usr/local/bin/perl # edit_ssl.cgi # Configure whether Usermin uses SSL or not require './usermin-lib.pl'; $access{'ssl'} || &error($text{'acl_ecannot'}); &ui_print_header(undef, $text{'ssl_title'}, ""); &get_usermin_miniserv_config(\%miniserv); $@ = undef; eval "use Net::SSLeay"; if ($@) { print &text('ssl_essl', "http://www.webmin.com/ssl.html"),"\n"; } else { print $text{'ssl_desc1'},"

\n"; print $text{'ssl_desc2'},"
\n"; print "

\n"; print "\n"; print "\n"; print "
$webmin::text{'ssl_header'}
\n"; print "\n"; printf "\n", $miniserv{'ssl'} ? "" : "checked", $text{'no'}; print "\n"; printf "\n", $miniserv{'keyfile'}, &file_chooser_button("key"); print "\n"; printf "\n", $miniserv{'certfile'}, &file_chooser_button("cert"); print "\n"; printf "\n", $miniserv{'ssl_redirect'} ? "" : "checked", $text{'no'}; print "\n"; print "\n"; print "\n"; print "\n"; print "
$webmin::text{'ssl_on'} %s\n", $miniserv{'ssl'} ? "checked" : "", $text{'yes'}; printf " %s
$webmin::text{'ssl_key'} %s
$webmin::text{'ssl_cert'} %s
\n", $miniserv{'certfile'} ? "" : "checked", $webmin::text{'ssl_cert_def'}; printf " %s\n", $miniserv{'certfile'} ? "checked" : "", $webmin::text{'ssl_cert_oth'}; printf " %s
$webmin::text{'ssl_redirect'} %s\n", $miniserv{'ssl_redirect'} ? "checked" : "", $text{'yes'}; printf " %s
$webmin::text{'ssl_version'}",&ui_opt_textbox("version", $miniserv{'ssl_version'}, 4, $webmin::text{'ssl_auto'}),"
$webmin::text{'ssl_extracas'}
\n"; print "
\n"; print "
\n"; # Table listing per-IP SSL certs print "$webmin::text{'ssl_ipkeys'}

\n"; @ipkeys = &webmin::get_ipkeys(\%miniserv); if (@ipkeys) { print &ui_columns_start([ $webmin::text{'ssl_ips'}, $webmin::text{'ssl_key'}, $webmin::text{'ssl_cert'} ]); foreach $k (@ipkeys) { print &ui_columns_row([ "". join(", ", @{$k->{'ips'}})."", "$k->{'key'}", $k->{'cert'} ? "$k->{'cert'}" : "
" ]); } print &ui_columns_end(); } else { print "$webmin::text{'ssl_ipkeynone'}

\n"; } print "$webmin::text{'ssl_addipkey'}

\n"; # SSL key generation form print "


\n"; print "$text{'ssl_newkey'}\n"; local $curkey = `cat $miniserv{'keyfile'} 2>/dev/null`; local $origkey = `cat $miniserv{'root'}/miniserv.pem 2>/dev/null`; if ($curkey eq $origkey) { # System is using the original (insecure) Usermin key! print "$text{'ssl_hole'}\n"; } print "

\n"; print "

\n"; print "\n"; print "\n"; print "
$webmin::text{'ssl_header1'}
\n"; print "\n"; print "\n"; print "\n"; printf "\n", "usermin\@".&get_system_hostname(); print "\n"; print "\n"; $hostname = &get_system_hostname(); print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; printf "\n", "$config{'usermin_dir'}/miniserv.pem"; print "\n"; print "
$webmin::text{'ssl_cn'} ", "$webmin::text{'ssl_all'}\n"; print "\n"; $host = $ENV{'HTTP_HOST'}; $host =~ s/:.*//; print "
$webmin::text{'ca_email'}
$webmin::text{'ca_ou'}
$webmin::text{'ca_o'}
$webmin::text{'ca_city'}
$webmin::text{'ca_sp'}
$webmin::text{'ca_c'}
$webmin::text{'ssl_size'} ", "$text{'default'} ($default_key_size)\n"; print " ", "$webmin::text{'ssl_custom'}\n"; print " $webmin::text{'ssl_bits'}
$webmin::text{'ssl_days'}
$webmin::text{'ssl_newfile'}
$webmin::text{'ssl_usenew'} \n"; print " $text{'yes'}\n"; print " $text{'no'}
\n"; print "
\n"; } &ui_print_footer("", $text{'index_return'});