mirror of
https://github.com/dehydrated-io/dehydrated.git
synced 2026-03-23 17:41:02 +01:00
Created Import existing account key (markdown)
32
Import-existing-account-key.md
Normal file
32
Import-existing-account-key.md
Normal file
@@ -0,0 +1,32 @@
|
||||
If for any reason you want to import your existing account key from the official letsencrypt client place the following script next to `private_key.json` (should be in a subdirectory under `/etc/letsencrypt/accounts/acme-v01.api.letsencrypt.org/directory`) and run it.
|
||||
|
||||
It should return your private key in PEM format, which you can pipe directly into `private_key.pem`.
|
||||
|
||||
```perl
|
||||
#!/usr/bin/env perl
|
||||
|
||||
use strict;
|
||||
|
||||
use Crypt::OpenSSL::RSA;
|
||||
use Crypt::OpenSSL::Bignum;
|
||||
use JSON;
|
||||
use File::Slurp;
|
||||
use MIME::Base64;
|
||||
|
||||
my $json_file = "private_key.json";
|
||||
my $json_content = read_file($json_file);
|
||||
$json_content =~ tr/-/+/;
|
||||
$json_content =~ tr/_/\//;
|
||||
|
||||
my $json = decode_json($json_content);
|
||||
|
||||
my $n = Crypt::OpenSSL::Bignum->new_from_bin(decode_base64($json->{n}));
|
||||
my $e = Crypt::OpenSSL::Bignum->new_from_bin(decode_base64($json->{e}));
|
||||
my $d = Crypt::OpenSSL::Bignum->new_from_bin(decode_base64($json->{d}));
|
||||
my $p = Crypt::OpenSSL::Bignum->new_from_bin(decode_base64($json->{p}));
|
||||
my $q = Crypt::OpenSSL::Bignum->new_from_bin(decode_base64($json->{q}));
|
||||
|
||||
my $rsa = Crypt::OpenSSL::RSA->new_key_from_parameters($n, $e, $d, $p, $q);
|
||||
|
||||
print($rsa->get_private_key_string());
|
||||
```
|
||||
Reference in New Issue
Block a user