caddytls: Give a better error message when given encrypted private keys #6591
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
A user recently pointed out that they were misled because they tried to use an encrypted private key, which we don't support (see #4873).
I chose to read the first 40 characters of the PEM to see if it has
ENCRYPTED
to guess whether it was encrypted. I chose 40 because the length of the ASCII armor-----BEGIN ENCRYPTED PRIVATE KEY-----
is 37, just a rough estimate of the input. I don't know how EC encrypted keys look but I assume it also usesENCRYPTED
in the header?Before this, the error was:
Error: loading initial config: loading new config: loading http app module: provision http: getting tls app: loading tls app module: provision tls: loading certificates: tls: failed to parse private key
Now:
Error: loading initial config: loading new config: loading http app module: provision http: getting tls app: loading tls app module: provision tls: loading certificates: encrypted private keys are not supported; please decrypt the key first