Conversation
A failed LE setup on create or alias change (init_le) clears site_ssl and tells the user to re-run `ee site ssl-verify`. The new guard rejected that with "only applicable to Let's Encrypt certificates", which reads wrong for a site that asked for LE. Sites without SSL now get an error that names `ee site update <site> --ssl=le` (with `--wildcard` when needed), which issues the cert and also records SSL in the DB so the site is renewed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Problem
ee site ssl-verify(ssl_verify()) had no guard on the site's SSL type. Run on acustom/self/inheritsite it would still prompt for a Let's Encrypt email, instantiate the ACME client, run the challenge, and request an LE certificate — which overwrites the user's custom certificate if the domain validates, or yields a confusing "Failed to verify SSL" error with a retry hint that can never succeed for a non-LE cert.Fix
Guard
ssl_verify()to error clearly whensite_ssl !== 'le'. The guard sits aftersite_datais populated (so it covers the user-invoked subcommand) and does not affect the internal call frominit_le()during LE site creation — that path is only reached whensite_ssl === 'le', so the guard never fires there.Sites with SSL not enabled get a specific error instead:
SSL is not enabled on <site>. Enable Let's Encrypt SSL with `ee site update <site> --ssl=le`.(with--wildcardfor wildcard sites). That is the state a failed Let's Encrypt setup at create time leaves behind (an emptysite_ssl, plus a hint to re-runssl-verify), andssl-verifycan't complete that recovery because it never sets the SSL flag;ee site update --ssl=ledoes.Testing
Manual:
ee site create custom.test --type=html --ssl=custom --ssl-key=... --ssl-crt=...ee site ssl-verify custom.test→ exits with "SSL verification is only applicable to Let's Encrypt certificates." (no email prompt, no ACME run, certs untouched).--ssl=lesite still verifies/renews as before.ee site ssl-verify <site>→SSL is not enabled on <site>. Enable Let's Encrypt SSL with `ee site update <site> --ssl=le`.Tested on Ubuntu 26.04 with EasyEngine 4.12.0: custom, self-signed, inherit and no-SSL sites (exit 1, no email prompt, no ACME traffic, cert files unchanged).