GEODE-10562: Testcases for Hybrid CA TLS Configuration Test Suite#7988
Open
JinwooHwang wants to merge 4 commits intoapache:developfrom
Open
GEODE-10562: Testcases for Hybrid CA TLS Configuration Test Suite#7988JinwooHwang wants to merge 4 commits intoapache:developfrom
JinwooHwang wants to merge 4 commits intoapache:developfrom
Conversation
Testcases — Hybrid Model (Public CA servers, Private CA clients)
Testcases — Hybrid Model (Public CA servers, Private CA clients)
- Export sun.security.util package alongside sun.security.x509 - Required for ObjectIdentifier import in CertificateBuilder.java - Added to both compileJava and javadoc tasks for Java 17 compatibility
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.
Overview
This PR introduces comprehensive test coverage for the Hybrid CA TLS Configuration, which addresses the upcoming public CA clientAuth EKU sunset problem in Apache Geode.
Problem Statement
Public Certificate Authorities are phasing out support for the
clientAuthExtended Key Usage (EKU) in publicly-issued certificates. This creates significant challenges for Geode deployments:clientAuthEKUSolution: Hybrid CA Configuration
The Hybrid CA approach allows organizations to:
Architecture
Server Configuration:
serverAuthEKU onlyClient Configuration:
clientAuthEKUPeer-to-Peer Communication:
Changes in This PR
1. Test Infrastructure (
HybridCATestFixture.java)New test fixture providing:
2. Positive Test Suite (
HybridCASSLDUnitTest.java)Comprehensive validation of hybrid CA scenarios:
Test Methods:
testClientServerWithHybridCA- Basic client-server connectiontestMultipleClientsWithHybridCA- Concurrent client connectionstestP2PClusterWithPublicCAAndClientServerWithHybridCA- Full cluster topology3. Negative Test Suite (
HybridCASSLNegativeTest.java)Security validation ensuring proper rejection of invalid configurations:
Test Methods:
testClientWithoutPrivateCAFails- Client missing private CA certificatetestClientWithPublicCACertificateFails- Client using wrong CAtestServerWithMissingPublicCARejected- Server trust validation4. Certificate Builder Enhancement (
CertificateBuilder.java)Updates to support hybrid CA scenarios:
Test Coverage Summary
HybridCASSLDUnitTestHybridCASSLNegativeTestKey Findings
Proven Capabilities
Technical Requirements
Server Certificates (Public CA):
serverAuthEKUClient Certificates (Private CA):
clientAuthEKUServer Truststore:
Client Truststore:
Security Considerations
Advantages:
Requirements:
Migration Path
Existing clusters can migrate to hybrid CA configuration by:
Files Changed
Total: 3 new files, 1 modification
Testing
All tests pass successfully:
Related Documentation
This work supports the TLS migration guide and addresses:
Related Issues
Comparison with Alternative Approaches
Approach 1: Mutual TLS
Approach 2: Hybrid CA (GEODE-10562)
Approach 3: Server-Only TLS (GEODE-10563)
Checklist
This PR provides the test foundation proving that Hybrid CA TLS Configuration is a viable solution for addressing the public CA clientAuth EKU sunset while maintaining cryptographic membership enforcement.
For all changes, please confirm:
develop)?gradlew buildrun cleanly?