-
Notifications
You must be signed in to change notification settings - Fork 6.1k
Document X509 trusted root store fallback behavior on Linux #50901
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Co-authored-by: gewarren <[email protected]>
There was a problem hiding this 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 PR documents how .NET locates trusted root certificates on Linux systems, addressing a gap in the cross-platform cryptography documentation. The changes explain the OpenSSL-based certificate discovery mechanism and the /etc/ssl/certs fallback behavior that was implemented but never documented.
Key changes:
- Added new subsection explaining Linux certificate location resolution using OpenSSL environment variables
- Documented the fallback behavior to
/etc/ssl/certswhen configured directories are empty - Included troubleshooting guidance for certificate loading issues
Added AI usage metadata to the cross-platform cryptography documentation.
The documentation didn't explain how .NET locates trusted root certificates on Linux or the
/etc/ssl/certsfallback behavior implemented in dotnet/runtime#52925.Changes
Added new subsection "Trusted root certificate locations on Linux" under "The Root store" section:
SSL_CERT_FILE(bundle file path) andSSL_CERT_DIR(hashed certificate directory)/etc/ssl/certsfallback when the configured root store directory is empty andSSL_CERT_DIRisn't explicitly setSSL_CERT_DIRcontains onlyBEGIN TRUSTED CERTIFICATEformat certificates (unsupported by .NET for root certificates)This addresses scenarios where SSL/TLS connections fail on distributions like SLES despite working in other runtimes (curl, Python, Go) that explicitly check
/etc/ssl/certs.Original prompt
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.
Internal previews