Handle hostnames with upper-case letters
[webmin.git] / usermin / change_ssl.cgi
1 #!/usr/local/bin/perl
2 # change_ssl.cgi
3 # Enable or disable SSL support
4
5 require './usermin-lib.pl';
6 &ReadParse();
7 &error_setup($text{'ssl_err'});
8
9 &lock_file($usermin_miniserv_config);
10 &get_usermin_miniserv_config(\%miniserv);
11 $miniserv{'ssl'} = $in{'ssl'};
12 &webmin::validate_key_cert($in{'key'}, $in{'cert_def'} ? undef : $in{'cert'});
13 $miniserv{'keyfile'} = $in{'key'};
14 $miniserv{'certfile'} = $in{'cert_def'} ? undef : $in{'cert'};
15 $miniserv{'ssl_redirect'} = $in{'ssl_redirect'};
16 if ($in{'version_def'}) {
17         delete($miniserv{'ssl_version'});
18         }
19 else {
20         $in{'version'} =~ /^\d+$/ || &error($text{'ssl_eversion'});
21         $miniserv{'ssl_version'} = $in{'version'};
22         }
23 if ($in{'cipher_list_def'} == 1) {
24         delete($miniserv{'ssl_cipher_list'});
25         }
26 elsif ($in{'cipher_list_def'} == 2) {
27         $miniserv{'ssl_cipher_list'} = $webmin::strong_ssl_ciphers;
28         }
29 else {
30         $in{'cipher_list'} =~ /^\S+$/ || &error($text{'ssl_ecipher_list'});
31         $miniserv{'ssl_cipher_list'} = $in{'cipher_list'};
32         }
33 foreach $ec (split(/[\r\n]+/, $in{'extracas'})) {
34         -r $ec && !-d $ec || &error(&text('ssl_eextraca', $ec));
35         push(@extracas, $ec);
36         }
37 $miniserv{'extracas'} = join("\t", @extracas);
38 &put_usermin_miniserv_config(\%miniserv);
39 &unlock_file($usermin_miniserv_config);
40
41 $SIG{'TERM'} = 'IGNORE';        # stop process from being killed by restart
42 &restart_usermin_miniserv();
43 &webmin_log("ssl", undef, undef, \%in);
44
45 &redirect("");