Handle hostnames with upper-case letters
[webmin.git] / webmin / edit_ca.cgi
1 #!/usr/local/bin/perl
2 # edit_ca.cgi
3 # Display the current CA or a form for creating one
4
5 require './webmin-lib.pl';
6 ui_print_header(undef, $text{'ca_title'}, "");
7 get_miniserv_config(\%miniserv);
8
9 %aclconfig = foreign_config("acl");
10 foreign_require("acl", "acl-lib.pl");
11 if (!$ENV{"MINISERV_CONFIG"}) {
12         print "<p>$text{'ca_eminiserv'}<p>\n";
13         ui_print_footer("", $text{'index_return'});
14         exit;
15         }
16 elsif (uc($ENV{'HTTPS'}) ne 'ON') {
17         print "<p>$text{'ca_essl'}<p>\n";
18         ui_print_footer("", $text{'index_return'});
19         exit;
20         }
21 elsif (!defined(&Net::SSLeay::X509_STORE_CTX_get_current_cert) ||
22        !defined(&Net::SSLeay::CTX_load_verify_locations) ||
23        !defined(&Net::SSLeay::CTX_set_verify)) {
24         print "<p>$text{'ca_eversion'}<p>\n";
25         ui_print_footer("", $text{'index_return'});
26         exit;
27         }
28 elsif (!acl::get_ssleay()) {
29         print "<p>",text('ca_essleay',
30                           "<tt>$aclconfig{'ssleay'}</tt>"),"<p>\n";
31         ui_print_footer("", $text{'index_return'});
32         exit;
33         }
34
35 print -r $miniserv{'ca'} ? $text{'ca_newmsg1'} : $text{'ca_newmsg1'},"<p>\n";
36
37 print ui_form_start("setup_ca.cgi", "post");
38 print ui_table_start($text{'ca_header1'}, undef, 2);
39
40 print &ui_table_row($text{'ca_cn'},
41                     &ui_textbox("commonName", undef, 30));
42
43 print &ui_table_row($text{'ca_email'},
44                     &ui_textbox("emailAddress", undef, 30));
45
46 print &ui_table_row($text{'ca_ou'},
47                     &ui_textbox("organizationalUnitName", undef, 30));
48
49 print &ui_table_row($text{'ca_o'},
50                     &ui_textbox("organizationName", undef, 30));
51
52 print &ui_table_row($text{'ca_sp'},
53                     &ui_textbox("stateOrProvinceName", undef, 15));
54
55 print &ui_table_row($text{'ca_c'},
56                     &ui_textbox("countryName", undef, 2));
57
58 print &ui_table_row($text{'ssl_size'},
59                     &ui_opt_textbox("size", undef, 6,
60                                     "$text{'default'} ($default_key_size)").
61                     " ".$text{'ssl_bits'});
62
63 print ui_table_end();
64 print ui_form_end([ [ "create", $text{'ca_create'} ] ]);
65
66 print ui_hr();
67
68 print -r $miniserv{'ca'} ? $text{'ca_oldmsg1'} : $text{'ca_oldmsg2'},"<p>\n";
69
70 print ui_form_start("change_ca.cgi", "form-data");
71 print ui_table_start($text{'ca_header2'}, undef, 2);
72 print ui_table_row(undef,
73         &ui_textarea("rows",
74                 $miniserv{'ca'} ? &read_file_contents($miniserv{'ca'}) : undef,
75                 20, 70));
76 print ui_table_end();
77 print ui_form_end([ [ "save", $text{'save'} ] ]);
78
79 if (-r $miniserv{'ca'}) {
80         print ui_hr();
81         print &ui_buttons_start();
82         print &ui_buttons_row("stop_ca", $text{'ca_stop'},
83                               $text{'ca_stopmsg'});
84         print &ui_buttons_end();
85         }
86
87 ui_print_footer("", $text{'index_return'});
88