X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=make%2Fopensslcert.pm;h=20da704f72434f3d8230c8489f7990a1bbfc372f;hb=c6610ad5da14ea4a1f45f0fc85d42c86975cb2a0;hp=cb94869f9974d18b6c692d7a4635aa9d5891f622;hpb=bab14f0dd2345c9d7dcbc47c918563709e1ac094;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/make/opensslcert.pm b/make/opensslcert.pm index cb94869f9..20da704f7 100644 --- a/make/opensslcert.pm +++ b/make/opensslcert.pm @@ -1 +1,66 @@ -package make::opensslcert; use Exporter 'import'; use make::configure; @EXPORT = qw(make_openssl_cert); sub make_openssl_cert() { open (FH, ">openssl.template"); my $org = promptstring_s("Please enter the organization name", "My IRC Network"); my $unit = promptstring_s("Please enter the unit Name", "Server Admins"); my $country = promptstring_s("Please enter your country (two letter code)", "US"); my $state = promptstring_s("Please enter your state or locality name", "Alaska"); my $city = promptstring_s("Please enter your city", "Factory Town"); my $email = promptstring_s("Please enter a contact email address", "oompa\@loompa.com"); my $commonname = promptstring_s("Please enter the common name (domain name) of the irc server", "example.inspircd.org"); print FH <<__END__; $country $state $city $org $unit $commonname $email __END__ close(FH); my $time = promptstring_s("Please enter the number of days that this certificate is valid for","365"); system("cat openssl.template | openssl req -x509 -nodes -newkey rsa:1024 -keyout key.pem -out cert.pem -days $time 2>/dev/null"); system("openssl dhparam -out dhparams.pem 1024"); unlink("openssl.template"); } 1; \ No newline at end of file +# +# InspIRCd -- Internet Relay Chat Daemon +# +# 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::opensslcert; + +require 5.8.0; + +use strict; +use warnings FATAL => qw(all); + +use Exporter 'import'; +use make::configure; +our @EXPORT = qw(make_openssl_cert); + + +sub make_openssl_cert() +{ + if (system 'openssl version >/dev/null 2>&1') + { + print "\e[1;31mCertificate generation failed:\e[0m unable to find 'openssl' in the PATH!\n"; + return; + } + open (FH, ">openssl.template"); + 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 $time = promptstring_s('How many days do you want your certificate to be valid for?', '365'); + my $use_1024 = promptstring_s('Do you want to generate less secure dhparams which are compatible with old versions of Java?', 'n'); + print FH <<__END__; +$country +$state +$city +$org +$unit +$commonname +$email +__END__ +close(FH); +my $dhbits = $use_1024 =~ /^(1|on|true|yes|y)$/ ? 1024 : 2048; +system("cat openssl.template | openssl req -x509 -nodes -newkey rsa:2048 -keyout key.pem -out cert.pem -days $time 2>/dev/null"); +system("openssl dhparam -out dhparams.pem $dhbits"); +unlink("openssl.template"); +} + +1;