App-Acmeman
view release on metacpan or search on metacpan
lib/App/Acmeman.pm view on Meta::CPAN
}
sub account_key {
my $self = shift;
unless ($self->{_account_key}) {
my $keyfile = $self->cf->get('account', 'key');
if (-r $keyfile) {
if (open(my $fh, '<', $keyfile)) {
local $/ = undef;
$self->{_account_key} = Crypt::OpenSSL::RSA->new_private_key(<$fh>);
close $fh;
} else {
error("can't open $keyfile for reading: $!");
}
} else {
$self->{_account_key} = Crypt::OpenSSL::RSA->generate_key($self->cf->get('core', 'key-size'));
}
}
return $self->{_account_key};
}
lib/App/Acmeman.pm view on Meta::CPAN
}
}
return $self->{_account_key_id};
}
sub acme {
my $self = shift;
unless ($self->{_acme}) {
my $acme = Net::ACME2::LetsEncrypt->new(
environment => $self->acme_host,
key => $self->account_key->get_private_key_string(),
key_id => $self->account_key_id
);
$self->{_acme} = $acme;
unless ($acme->key_id()) {
# Create new account
debug(3, "creating account");
my $terms_url = $acme->get_terms_of_service();
$acme->create_account(termsOfServiceAgreed => 1);
debug(3, "saving account credentials");
$self->account_key_id($acme->key_id());
my $keyfile = $self->cf->get('account', 'key');
if (open(my $fh, '>', $keyfile)) {
print $fh $self->account_key->get_private_key_string();
close $fh;
} else {
error("can't open $keyfile for writing: $!");
}
}
}
return $self->{_acme};
}
sub register_domain_certificate {
( run in 0.269 second using v1.01-cache-2.11-cpan-a5abf4f5562 )