Repository navigation
Conversation
Collaborator
|
Hi @plotters, many thanks for your contribution! In order for us to evaluate and accept your PR, we ask that you sign a contribution license agreement. It's all electronic and will take just minutes. |
plotters
marked this pull request as ready for review
October 29, 2026 08:53
Member
|
This PR fixes the issue described in #4644 |
Author
I requested to sign the CLA but did not get an email to sign it yet. @badlop can you resend it? Thanks! |
Member
|
Ok, I've reported the problem, I guess it will get fixed next week. I'll comment here again when it's ready. |
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.
Use managed TLS certificates for external component listeners
With
tls: trueand no listener-specificcertfile,ejabberd_servicepasses TLS options without a certificate tofast_tls, which rejects the connection before sending a server certificate. This prevents external components from using built-in ACME certificates without configuring internal certificate paths that can change on renewal.Resolve the initial certificate through
ejabberd_pkix:get_certfile(Server)when the listener has no explicit certificate. This uses the existing certificate manager and its default fallback. Each TLS options callback resolves the current path, allowing subsequent connections to use a replacement certificate. Explicit listener certificates retain precedence, and other TLS options are preserved. This changes certificate selection for the XEP-0114 listener without changing the component protocol.Validation
From the ejabberd checkout, after configuring its build environment:
For integration verification, configure
ejabberd_servicewithtls: trueand nocertfile, confirm an SNI-enabled OpenSSL connection presents the managed certificate, replace the managed certificate through the normal certificate manager, and verify a fresh connection presents the replacement without restarting. Also verify an explicit listener certificate still works and SNI can select a certificate for another managed hostname.Verified with Erlang/OTP 29 and Rebar 3.27.0.