Skip to content

Conversation

@vcsjones
Copy link
Member

@vcsjones vcsjones commented Nov 7, 2025

The certificate chain we were using in unit tests has a root certificate that is signed with RSA SHA-1. This signature algorithm is disabled on some linux distributions, and it is starting to get picked up in our CI.

Let's replace the chain with one that does not use RSA+SHA-1 signatures.

On CentOS Stream 10:
CleanShot 2025-11-07 at 12 13 27@2x

Contributes to #120527

Copilot AI review requested due to automatic review settings November 7, 2025 17:15
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This pull request updates the Microsoft.com SSL certificate test data and associated test cases to use a newer certificate version. The changes reflect an update from the Baltimore CyberTrust Root certificate chain to the DigiCert Global Root G2 certificate chain, with an updated certificate valid from October 2025 to March 2026.

  • Updates the Microsoft.com SSL certificate and its issuer/root certificate chain data
  • Adjusts verification times in tests to fall within the new certificate's validity period
  • Updates hostname test cases to reflect the Subject Alternative Names (SANs) in the new certificate
  • Simplifies platform-specific conditional logic for chain building tests

Reviewed Changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
MatchesHostnameTests.cs Updates hostname test cases to match SANs in the new certificate, including new domains like copilot.ai and yarp.dot.net
AuthorityKeyIdentifierTests.cs Updates expected hex values for authority key identifiers to match the new DigiCert-based certificate chain
CollectionTests.cs Updates verification time to December 2025 to fall within new certificate validity period
ChainTests.cs Updates verification times, simplifies platform conditionals, improves expiration test structure with collection expressions, and adds better failure diagnostics
TestData.cs Replaces entire certificate chain data (leaf, issuer, and root certificates) from Baltimore CyberTrust to DigiCert Global Root G2

bartonjs
bartonjs previously approved these changes Nov 7, 2025
holder.Chain.ChainElements[2].ChainElementStatus.Aggregate(
X509ChainStatusFlags.NoError,
(a, status) => a | status.Status));
if (!PlatformDetection.IsWindows || PlatformDetection.IsWindows10Version22000OrGreater)
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@bartonjs this one is interesting on the Windows 10 SP0 leg this test fails because the Application Policy violation NotValidForUsage does not get propagated to the root in the chain. I can't reproduce locally on Windows 11.

I don't know why it changed from one root to another.

Open to ideas on how we should handle this better for this test.

@vcsjones vcsjones requested a review from bartonjs November 8, 2025 02:31
@vcsjones vcsjones dismissed bartonjs’s stale review November 8, 2025 02:31

Dismissing because it was approved before some test failures were known and need to re-evaluate the solution.

@vcsjones vcsjones added this to the 11.0.0 milestone Nov 8, 2025
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.

2 participants