X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=make%2Fgnutlscert.pm;h=2c46e0e63e82b6eacb1e3beb1edc180ba38363b5;hb=571714e28b26cc59cbc8d27098a5ba981240ee2d;hp=822c27268471ec5501a6df083ccd4f3468091eb5;hpb=ca571fc1bfa87da2d6b4b8b2d01c90991e14e106;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/make/gnutlscert.pm b/make/gnutlscert.pm index 822c27268..2c46e0e63 100644 --- a/make/gnutlscert.pm +++ b/make/gnutlscert.pm @@ -1,14 +1,22 @@ -# +------------------------------------+ -# | Inspire Internet Relay Chat Daemon | -# +------------------------------------+ # -# InspIRCd: (C) 2002-2009 InspIRCd Development Team -# See: http://www.inspircd.org/wiki/index.php/Credits +# InspIRCd -- Internet Relay Chat Daemon # -# This program is free but copyrighted software; see -# the file COPYING for details. +# Copyright (C) 2007 Dennis Friis +# Copyright (C) 2007 Craig Edwards # -# --------------------------------------------------- +# This file is part of InspIRCd. InspIRCd is free software: you can +# redistribute it and/or modify it under the terms of the GNU General Public +# License as published by the Free Software Foundation, version 2. +# +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + package make::gnutlscert; @@ -21,17 +29,26 @@ use Exporter 'import'; use make::configure; our @EXPORT = qw(make_gnutls_cert); +# On OS X the GnuTLS certtool is prefixed to avoid collision with the system certtool. +my $certtool = $^O eq 'darwin' ? 'gnutls-certtool' : 'certtool'; sub make_gnutls_cert() { + if (system "$certtool --version >/dev/null 2>&1") + { + print "\e[1;31mError:\e[0m unable to find '$certtool' in the PATH!\n"; + return 1; + } open (FH, ">certtool.template"); my $timestr = time(); - my $org = promptstring_s("Please enter the organization name", "My IRC Network"); - my $unit = promptstring_s("Please enter the unit Name", "Server Admins"); - my $state = promptstring_s("Pleae enter your state (two letter code)", "CA"); - my $country = promptstring_s("Please enter your country", "Oompa Loompa Land"); - my $commonname = promptstring_s("Please enter the certificate common name (hostname)", "irc.mynetwork.com"); - my $email = promptstring_s("Please enter a contact email address", "oompa\@loompa.com"); + my $commonname = promptstring_s('What is the hostname of your server?', 'irc.example.com'); + my $email = promptstring_s('What email address can you be contacted at?', 'example@example.com'); + my $unit = promptstring_s('What is the name of your unit?', 'Server Admins'); + my $org = promptstring_s('What is the name of your organization?', 'Example IRC Network'); + my $city = promptstring_s('What city are you located in?', 'Example City'); + my $state = promptstring_s('What state are you located in?', 'Example State'); + my $country = promptstring_s('What is the ISO 3166-1 code for the country you are located in?', 'XZ'); + my $days = promptstring_s('How many days do you want your certificate to be valid for?', '365'); print FH <<__END__; # X.509 Certificate options # @@ -44,13 +61,13 @@ organization = "$org" unit = "$unit" # The locality of the subject. -# locality = +locality = "$city" # The state of the certificate owner. state = "$state" # The country of the subject. Two letter code. -country = $country +country = "$country" # The common name of the certificate owner. cn = "$commonname" @@ -72,7 +89,7 @@ cn = "$commonname" serial = $timestr # In how many days, counting from today, this certificate will expire. -expiration_days = 700 +expiration_days = $days # X.509 v3 extensions @@ -123,8 +140,8 @@ ocsp_signing_key time_stamping_key __END__ close(FH); -if ( (my $status = system("certtool --generate-privkey --outfile key.pem")) ne 0) { return 1; } -if ( (my $status = system("certtool --generate-self-signed --load-privkey key.pem --outfile cert.pem --template certtool.template")) ne 0) { return 1; } +if ( (my $status = system("$certtool --generate-privkey --outfile key.pem")) ne 0) { return 1; } +if ( (my $status = system("$certtool --generate-self-signed --load-privkey key.pem --outfile cert.pem --template certtool.template")) ne 0) { return 1; } unlink("certtool.template"); return 0; }