Skip to content

Add missing CRL cache support to rabbitmq.conf configuration#15160

Merged
michaelklishin merged 1 commit intorabbitmq:mainfrom
amazon-mq:rabbitmq-server-2338
Dec 18, 2025
Merged

Add missing CRL cache support to rabbitmq.conf configuration#15160
michaelklishin merged 1 commit intorabbitmq:mainfrom
amazon-mq:rabbitmq-server-2338

Conversation

@lukebakken
Copy link
Copy Markdown
Collaborator

@lukebakken lukebakken commented Dec 18, 2025

Add crl_cache support to rabbitmq.conf configuration RabbitMQ's modern rabbitmq.conf format does not support the crl_cache SSL option, forcing users to fall back to the legacy Erlang-style advanced.config file for this single setting. This creates an inconsistent configuration experience when using Certificate Revocation List (CRL) validation.

This adds schema mappings for ssl_options.crl_sources using indexed syntax. The implementation translates these settings into the required Erlang term format {crl_cache, {ssl_crl_cache, {internal, [Options]}}}. Two CRL source types are supported: http with an optional timeout parameter (defaults to 5000ms), and dir with a required path parameter. Validation ensures that only appropriate options are used with each source type.

Users can now configure multiple CRL sources using indexed syntax:

ssl_options.crl_sources.0 = http
ssl_options.crl_sources.0.timeout = 5000
ssl_options.crl_sources.1 = dir
ssl_options.crl_sources.1.path = /var/lib/rabbitmq/crls

Fixes #2338

@lukebakken
Copy link
Copy Markdown
Collaborator Author

@michaelklishin
Copy link
Copy Markdown
Collaborator

To summarize my feedback from #2338: crl_source is a collection so it should be crl_sources.

Otherwise this should mostly plug the CLR option gap we currently have in the TLS-related options.

RabbitMQ's modern `rabbitmq.conf` format does not support the
`crl_cache` SSL option, forcing users to fall back to the legacy
Erlang-style `advanced.config` file for this single setting. This
creates an inconsistent configuration experience when using Certificate
Revocation List (CRL) validation.

This adds schema mappings for `ssl_options.crl_sources` using indexed
syntax. The implementation translates these settings into the required
Erlang term format `{crl_cache, {ssl_crl_cache, {internal,
[Options]}}}`. Two CRL source types are supported: `http` with an
optional `timeout` parameter (defaults to 5000ms), and `dir` with a
required `path` parameter. Validation ensures that only appropriate
options are used with each source type.

Users can now configure multiple CRL sources using indexed syntax:

```
ssl_options.crl_sources.0 = http
ssl_options.crl_sources.0.timeout = 5000
ssl_options.crl_sources.1 = dir
ssl_options.crl_sources.1.path = /var/lib/rabbitmq/crls
```
Fixes rabbitmq#2338
@michaelklishin michaelklishin added this to the 4.3.0 milestone Dec 18, 2025
@michaelklishin michaelklishin merged commit 203df96 into rabbitmq:main Dec 18, 2025
290 of 291 checks passed
@michaelklishin michaelklishin changed the title Add crl_cache support to rabbitmq.conf configuration Add missing CRL cache support to rabbitmq.conf configuration Dec 18, 2025
michaelklishin added a commit that referenced this pull request Dec 18, 2025
Add missing CRL cache support to `rabbitmq.conf` configuration (backport #15160)
@lukebakken lukebakken deleted the rabbitmq-server-2338 branch December 18, 2025 19:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support crl_cache in conf-style configuration

2 participants