]> git.netwichtig.de Git - user/henk/code/inspircd.git/blob - make/opensslcert.pm
Fix mistakenly using Clang instead of GCC on older FreeBSD versions.
[user/henk/code/inspircd.git] / make / opensslcert.pm
1 #
2 # InspIRCd -- Internet Relay Chat Daemon
3 #
4 #   Copyright (C) 2007 Dennis Friis <peavey@inspircd.org>
5 #   Copyright (C) 2007 Craig Edwards <craigedwards@brainbox.cc>
6 #
7 # This file is part of InspIRCd.  InspIRCd is free software: you can
8 # redistribute it and/or modify it under the terms of the GNU General Public
9 # License as published by the Free Software Foundation, version 2.
10 #
11 # This program is distributed in the hope that it will be useful, but WITHOUT
12 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
13 # FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
14 # details.
15 #
16 # You should have received a copy of the GNU General Public License
17 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
18 #
19
20
21 package make::opensslcert;
22
23 require 5.8.0;
24
25 use strict;
26 use warnings FATAL => qw(all);
27
28 use Exporter 'import';
29 use make::configure;
30 our @EXPORT = qw(make_openssl_cert);
31
32
33 sub make_openssl_cert()
34 {
35         open (FH, ">openssl.template");
36         my $commonname = promptstring_s('What is the hostname of your server?', 'irc.example.com');
37         my $email = promptstring_s('What email address can you be contacted at?', 'example@example.com');
38         my $unit = promptstring_s('What is the name of your unit?', 'Server Admins');
39         my $org = promptstring_s('What is the name of your organization?', 'Example IRC Network');
40         my $city = promptstring_s('What city are you located in?', 'Example City');
41         my $state = promptstring_s('What state are you located in?', 'Example State');
42         my $country = promptstring_s('What is the ISO 3166-1 code for the country you are located in?', 'XZ');
43         my $time = promptstring_s('How many days do you want your certificate to be valid for?', '365');
44         print FH <<__END__;
45 $country
46 $state
47 $city
48 $org
49 $unit
50 $commonname
51 $email
52 __END__
53 close(FH);
54 system("cat openssl.template | openssl req -x509 -nodes -newkey rsa:1024 -keyout key.pem -out cert.pem -days $time 2>/dev/null");
55 system("openssl dhparam -out dhparams.pem 1024");
56 unlink("openssl.template");
57 }
58
59 1;