1 package make::gnutlscert;
\r\ruse Exporter 'import';
\ruse make::configure;
\r@EXPORT = qw(make_gnutls_cert);
\r\r\rsub make_gnutls_cert()
\r{
\r open (FH, ">certtool.template");
\r my $timestr = time();
\r my $org = promptstring_s("Please enter the organization name", "My IRC Network");
\r my $unit = promptstring_s("Please enter the unit Name", "Server Admins");
\r my $state = promptstring_s("Pleae enter your state (two letter code)", "CA");
\r my $country = promptstring_s("Please enter your country", "Oompa Loompa Land");
\r my $commonname = promptstring_s("Please enter the certificate common name (hostname)", "irc.mynetwork.com");
\r my $email = promptstring_s("Please enter a contact email address", "oompa\@loompa.com");
\r print FH <<__END__;
\r# X.509 Certificate options
\r#
\r# DN options
\r\r# The organization of the subject.
\rorganization = "$org"
\r\r# The organizational unit of the subject.
\runit = "$unit"
\r\r# The locality of the subject.
\r# locality =
\r\r# The state of the certificate owner.
\rstate = "$state"
\r\r# The country of the subject. Two letter code.
\rcountry = $country
\r\r# The common name of the certificate owner.
\rcn = "$commonname"
\r\r# A user id of the certificate owner.
\r#uid = "clauper"
\r\r# If the supported DN OIDs are not adequate you can set
\r# any OID here.
\r# For example set the X.520 Title and the X.520 Pseudonym
\r# by using OID and string pairs.
\r#dn_oid = "2.5.4.12" "Dr." "2.5.4.65" "jackal"
\r\r# This is deprecated and should not be used in new
\r# certificates.
\r# pkcs9_email = "none\@none.org"
\r\r# The serial number of the certificate
\rserial = $timestr
\r\r# In how many days, counting from today, this certificate will expire.
\rexpiration_days = 700
\r\r# X.509 v3 extensions
\r\r# A dnsname in case of a WWW server.
\r#dns_name = "www.none.org"
\r\r# An IP address in case of a server.
\r#ip_address = "192.168.1.1"
\r\r# An email in case of a person
\remail = "$email"
\r\r# An URL that has CRLs (certificate revocation lists)
\r# available. Needed in CA certificates.
\r#crl_dist_points = "http://www.getcrl.crl/getcrl/"
\r\r# Whether this is a CA certificate or not
\r#ca
\r\r# Whether this certificate will be used for a TLS client
\rtls_www_client
\r\r# Whether this certificate will be used for a TLS server
\rtls_www_server
\r\r# Whether this certificate will be used to sign data (needed
\r# in TLS DHE ciphersuites).
\rsigning_key
\r\r# Whether this certificate will be used to encrypt data (needed
\r# in TLS RSA ciphersuites). Note that it is prefered to use different
\r# keys for encryption and signing.
\rencryption_key
\r\r# Whether this key will be used to sign other certificates.
\rcert_signing_key
\r\r# Whether this key will be used to sign CRLs.
\rcrl_signing_key
\r\r# Whether this key will be used to sign code.
\rcode_signing_key
\r\r# Whether this key will be used to sign OCSP data.
\rocsp_signing_key
\r\r# Whether this key will be used for time stamping.
\rtime_stamping_key
\r__END__
\rclose(FH);
\rsystem("certtool --generate-privkey --outfile key.pem") or return 1;
\rsystem("certtool --generate-self-signed --load-privkey key.pem --outfile cert.pem --template certtool.template") or return 1;
\runlink("certtool.template");
\r}
\r\r1;
\r\r