Handle hostnames with upper-case letters
[webmin.git] / ldap-server / gencert.cgi
1 #!/usr/local/bin/perl
2 # Actually generate the cert
3
4 require './ldap-server-lib.pl';
5 &local_ldap_server() == 1 || &error($text{'slapd_elocal'});
6 $access{'slapd'} || &error($text{'slapd_ecannot'});
7 &foreign_require("webmin", "webmin-lib.pl");
8 &ReadParse();
9 &error_setup($text{'gencert_err'});
10 $conf = &get_config();
11
12 # Work out dest files
13 if ($in{'dest_def'}) {
14         $keyfile = &find_value("TLSCertificateKeyFile", $conf);
15         $certfile = &find_value("TLSCertificateFile", $conf);
16         }
17 else {
18         # In some dir
19         -d $in{'dest'} || &error($text{'gencert_edest'});
20         $keyfile = $in{'dest'}."/ldap.key";
21         $certfile = $in{'dest'}."/ldap.cert";
22         }
23
24 # Do it
25 $err = &webmin::parse_ssl_key_form(\%in, $keyfile,
26                                    $certfile eq $keyfile ? undef : $certfile);
27 &error($err) if ($err);
28
29 # Make readable by LDAP user
30 &set_ownership_permissions($config{'ldap_user'}, undef, undef,
31                            $keyfile, $certfile);
32
33 # Update config to use them
34 &lock_slapd_files();
35 &save_directive($conf, "TLSCertificateFile", $certfile);
36 &save_directive($conf, "TLSCertificateKeyFile", $keyfile);
37 &flush_file_lines($config{'config_file'});
38 &unlock_slapd_files();
39
40 &webmin_log("gencert");
41 &redirect("");
42