First, I just have to say what you are doing is beyond awesome, way into the heroic, something that shows humans are better creatures than anyone could ever figure. Not only is your objective fantastic, your innovative, complete, intelligent implementation is just so great, I just want to tip my hat, then fall to ground to kowtow. Since money talks and we all know what walks, I made a small donation as gesture.
I have an idea for adding a comment to the notes produced when issuing certificate that might help people understand how this works more easily. I don't know if you ever experienced this, but SSL setup can be pretty flipping confusing if it something you are not doing all the time. Almost all explanations of what is involved are horrible. Most of the the time, there are mistakes, but when nothing is wrong, the explanations are nearly always baffling. One of the things I am so excited about with letsencrypt is the coherant, complete way you explain things, but it is not perfect yet.
The problem I ran into, I have seen some questions about this, is I was wondering how the certificates from letsencrypt are tied to trusted CA certificates. This came up while sorting through messages produced in issuing a certificate
Your cert is in /root/.acme.sh/example.com/example.com.cer
Your cert key is in /root/.acme.sh/example.com/example.com.key
The intermediate CA cert is in /root/.acme.sh/example.com/ca.cer
And the full chain certs is there: /root/.acme.sh/example.com/fullchain.cer
I was tracking these through the installation process, and started wondering.....
Put yourself in the shoes of someone who just bought a cert a few days ago. These are the files I got from that:
AddTrustExternalCARoot.crt
COMODORSAAddTrustCA.crt
COMODORSADomainValidationSecureServerCA.crt
All of a sudden, I was wondering where the root authority comes from. I thought I needed a cert for it, which I know is dumb, but...
Maybe those files from the commercial provider are misnamed, since the CARoot authority is not part of what my ssl bundle needs, but it definitely caused me to start looking for CARoot-something when I used letsencrypt. I wanted to make sure I have all the pieces I need, which I now understand I do.
Help People See Their Way Through
So, the idea to clear that up would be to add a note in the output listing all those files to indicate where the CARoot is coming from and the the fact that it is not part of what goes in a chain file and for more info... provide a link. Like this:
Your cert is in /root/.acme.sh/example.com/example.com.cer
Your cert key is in /root/.acme.sh/example.com/example.com.key
The intermediate CA cert is in /root/.acme.sh/example.com/ca.cer
And the full chain certs is there: /root/.acme.sh/example.com/fullchain.cer
***** that is everything you need. The root certificate authority tied to your certs is IdenTrust's DST X3 root, which is already in browsers and other clients. For more information on how this works... (link).**