All the certificates issued by Let’s Encrypt are logged to Certificate Transparency logs, so you can find them at sites like http://crt.sh
But without the private key corresponding to the certificate, such a certificate is useless. And those private keys are also stored in /etc/letsencrypt.
So unfortunately you’ll have to wait for the rate limit to subside.
Question though: are you experimenting with Let’s Encrypt? Seems to me there’s quite a chance you are. If so, I’d strongly suggest to use the staging environment!
I have four folders in /etc/letsencrypt: accounts, csr, keys and renewal. And, there are files in it. I believe I didn’t touch these folders. Do they help?
You said you deleted all files in /etc/letsencrypt…
To restore the symlinks in the /etc/letsencrypt/live/ directory, you can try to run certbot update_symlinks. Perhaps it will make the /live/ directory itself if it’s missing, maybe not.
My bad, I think I deleted live and archive folders from /etc/letsencrypt but I’m not very sure. Anyway, I tried certbot-auto update_symlinks but nothing changed. It writes a log file though:
2017-03-18 14:49:34,887:DEBUG:certbot.main:Root logging level set at 20
2017-03-18 14:49:34,888:INFO:certbot.main:Saving debug log to /var/log/letsencrypt/letsencrypt.log
2017-03-18 14:49:34,889:DEBUG:certbot.main:certbot version: 0.12.0
2017-03-18 14:49:34,889:DEBUG:certbot.main:Arguments: []
2017-03-18 14:49:34,890:DEBUG:certbot.main:Discovered plugins: PluginsRegistry(PluginEntryPoint#standalone,PluginEntryPoint#manual,PluginEntryPoint#nginx,PluginEntryPoint#webroot,PluginEntryPoint#apache,PluginEntryPoint#null)
With those two, you can ‘rebuild’ your /archive/example.com and /live/example.com where example.com is the name of your site/hostname (certbot defaults to the first hostname in the certificate):
The 00xx_key-certbot.pem from /keys/ would become /archive/example.com/privkey1.pem
The certificate you downloaded from crt.sh would become /archive/example.com/cert1.pem
Furthermore, you’ll need to download the “Let’s Encrypt Authority X3 (IdenTrust cross-signed)” from the Let’s Encrypt certificates page and put it in the folder like this: /archive/example.com/chain1.pem
After that, you’ll need to concatenate cert1.pem and chain1.pem to fullchain1.pem like this:
cat cert1.pem chain1.pem > fullchain1.pem
And then you might try certbot update_symlinks again or symlink all the files yourself.
The error message says it’s using the private key from the file /ssl/privkey.pem? Let’s Encrypt doesn’t use those paths… Did you put both the files somewhere else? I.e., is nginx using the correct files?
I use Nginx in a Docker image and it’s a mapped path. It actually already works. I just want to repeat the test and make sure I control it well so I deleted these files to “reset”. Then, I have the problem…
If the results of openssl x509 -noout -modulus -in certificate_used_in_nginx.pem | openssl sha256 and openssl rsa -noout -modulus -in private_key_used_in_nginx.pem | openssl sha256 really give exactly the same result, I’m not sure why it won’t work…
By the way, I managed to switch rsa and x509 in my previous post above… Whoops, mea culpa… x509 is used for the certificate and rsa for the private key.
Seems it’s the only option for me… I appreciate your help anyway.
Last time I tried to request the certificate, instead of updating existing pem files, I got -0001, -0002…etc in the live and archive folders. Can I make everything works like first time? Like a “reset”?
The staging environment doesn’t have such strict rate limits indeed, ideal for testing (This is b/c the staging environment doesn’t allocate load on the Hardware Security Modules, which are used for the live environment and these HSM’s are or can be, as far as I have understood, quite a bottle neck for scalability.)