AppLib-CreateSelfSignedSSLCert
view release on metacpan or search on metacpan
0.152 2023-06-05 Released-By: PERLANCAR; Urgency: high
- [bugfix] Forgot octal notation, derp.
0.151 2023-06-05 Released-By: PERLANCAR; Urgency: medium
- chmod 400 key file.
0.150 2017-10-11 Released-By: PERLANCAR
- First release, split from App-CreateSelfSignedSSLCert and rename
App::CreateSelfSignedSSLCert to AppLib::CreateSelfSignedSSLCert so it
can be used without having to depend on Perinci::CmdLine et al.
lib/AppLib/CreateSelfSignedSSLCert.pm view on Meta::CPAN
exec => 'openssl',
},
};
sub create_self_signed_ssl_cert {
my %args = @_;
my $h = $args{hostname};
system("openssl genrsa 2048 > "._sq("$h.key"));
return [500, "Can't generate key: ".explain_child_error()] if $?;
chmod 0400, "$h.key" or warn "WARN: Can't chmod 400 $h.key: $!";
my $cmd = "openssl req -new -key "._sq("$h.key")." -out "._sq("$h.csr");
if ($args{interactive}) {
system $cmd;
return [500, "Can't generate csr: ".explain_child_error()] if $?;
} else {
my $exp = Expect->spawn($cmd);
return [500, "Can't spawn openssl req"] unless $exp;
$exp->expect(
30,
lib/AppLib/CreateSelfSignedSSLCert.pm view on Meta::CPAN
));
return [500, "Can't generate crt: ".explain_child_error()] if $?;
system("openssl x509 -noout -fingerprint -text < "._sq("$h.crt").
"> "._sq("$h.info"));
return [500, "Can't generate info: ".explain_child_error()] if $?;
system("cat "._sq("$h.crt")." "._sq("$h.key")." > "._sq("$h.pem"));
return [500, "Can't generate pem: ".explain_child_error()] if $?;
system("chmod 400 "._sq("$h.pem"));
log_info("Your certificate has been created at $h.pem");
[200];
}
$SPEC{create_ssl_csr} = {
v => 1.1,
args => {
hostname => {
( run in 0.240 second using v1.01-cache-2.11-cpan-496ff517765 )