-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
Expired self-issued certificate has different chain building status on Linux #48794
Comments
Tagging subscribers to this area: @bartonjs, @vcsjones, @krwq, @GrabYourPitchforks Issue DetailsDescriptionIf we build the chain for the expired self-issued certificate (add it to trusted store before it expires) by setting the policy as following:
The chain build on Linux is different from other platforms: But if we build the chain for the expired leaf certificate issued by intermediate CA by using the same policy setting, Configuration
Regression?I'm not sure Other informationRepro steps:
If we change it into an expired leaf cert issued by intermediate CA, the chain build result will be good.
|
The issue seems to be
But given that it's reporting As for |
On Linux: |
Seems like we're treating the (about to be ignored) NotTimeValid as a reason to not do revocation processing, but that Windows' logic doesn't quite match there. There's probably room for improvement, but I don't think there's a compelling scenario to drive this for 6.0. |
Is this why i'm throwing exceptions when I try to "nuget sign" with a self-signed PFX on Linux? Works on Windows and Mac just fine. Tried doing
If so, any suggested workaround? Other than copying the files over to Windows I mean :) Trying to do this via CI. |
This would be an awesome fix for .net 8, since it allows library maintainers to sign their packages on |
Description
If we build the chain for the expired self-issued certificate (add it to trusted store before it expires) by setting the policy as following:
The chain build on Linux is different from other platforms:
Chain status: "NotTimeValid,RevocationStatusUnknown,UntrustedRoot"
While on Windows the chain build is successful.
But if we build the chain for the expired leaf certificate issued by intermediate CA by using the same policy setting,
the chain build is successful for both Linux and Windows.
Configuration
.NET 5
Linux, Ubuntu 18.08
Regression?
I'm not sure
Other information
Repro steps:
git clone https://github.com/NuGet/Entropy.git
cd <path_to_Entropy>\ TestCertGenerator.
.\CreateTestCertificate.ps1 -AddAsTrustedRootAuthority -NotAfter "<10 minutes in the future from current local time>" -GenerateCerFile
openssl x509 -inform DER -in <.cer file path> -out <.crt file path>
If we change it into an expired leaf cert issued by intermediate CA, the chain build result will be good.
Attached are the certs from leaf to root:
certifaicates.zip
The text was updated successfully, but these errors were encountered: