Added option to specify ClientCertificateContext in .NET 8+#1866
Merged
lukebakken merged 1 commit intorabbitmq:mainfrom Nov 5, 2025
Merged
Added option to specify ClientCertificateContext in .NET 8+#1866lukebakken merged 1 commit intorabbitmq:mainfrom
lukebakken merged 1 commit intorabbitmq:mainfrom
Conversation
Contributor
Author
|
I haven't signed the CA yet. If there's interest in this change, I'm happy to sign it so this PR can proceed. |
Contributor
|
@tyb-dev I definitely think there is interest in supporting this option (conditionally, on .NET 8+). Thank you! Please email us as described in the contributor CLA repo and we will send you a Box Sign signature request. |
lukebakken
requested changes
Nov 4, 2025
Collaborator
lukebakken
left a comment
There was a problem hiding this comment.
A test is required. If you'd like to get the skeleton of a test in place in the projects\Test\Integration\TestSsl.cs file I can ensure the correct certs are in place for CI runs.
c3995bd to
9849f55
Compare
Fixes rabbitmq#1864 .NET supports the ability to supply intermediate certificates as well as the client certificate during mTLS setup. Without support for `ClientCertificateContext`, users must ensure that intermediate certs are available in the system cert store for the .NET runtime to find. These changes use certificates generated via `rabbitmq/tls-gen` using this command: ``` make CN=localhost -C one_intermediate ``` All SSL tests now provide a client certificate, because the RabbitMQ configuration has changed to require them via via... ``` ssl_options.fail_if_no_peer_cert = true ```
9849f55 to
c91c7f5
Compare
lukebakken
approved these changes
Nov 5, 2025
This was referenced Nov 7, 2025
This was referenced Nov 28, 2025
This was referenced Dec 7, 2025
This was referenced Dec 26, 2025
This was referenced Jan 9, 2026
This was referenced Mar 23, 2026
This was referenced Apr 17, 2026
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.
Proposed Changes
This allows clients to send the full intermediate chain during the TLS handshake instead of relying on OS stores or AIA fetches, addressing issue #1864. It improves interoperability when servers don’t have intermediates installed or when environments lack internet access.
Keep behavior unchanged for netstandard2.0; the new API is only compiled for net8.0.
Split Public API “Unshipped” files per TFM and wire them via AdditionalFiles to satisfy the PublicApiAnalyzer for both net8.0 and netstandard2.0.
Types of Changes
What types of changes does your code introduce to this project?
Put an
xin the boxes that applyChecklist
Put an
xin the boxes that apply. You can also fill these out after creatingthe PR. If you're unsure about any of them, don't hesitate to ask on the
mailing list. We're here to help! This is simply a reminder of what we are
going to look for before merging your code.
CONTRIBUTING.mddocumentFurther Comments
N/A