我已经安装了SSL证书,但是当我通过扩展使用certCollection.Find时,它返回null。
private X509Certificate2 GetCertificateFromStore()
{
X509Certificate2 x509Certificate2;
var aspNetCoreEnvironment = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");
if (string.Equals(aspNetCoreEnvironment, "Development", StringComparison.OrdinalIgnoreCase))
{
const string aspNetHttpsOid = "1.3.1.1.3.1.1.84.1.1";
const string cnName = "CN=localhost";
using (var store = new X509Store(StoreName.My, StoreLocation.LocalMachine))
{
store.Open(OpenFlags.ReadOnly);
var certCollection = store.Certificates;
var currentCerts = certCollection.Find(X509FindType.FindByExtension, aspNetHttpsOid, true);
currentCerts = currentCerts.Find(X509FindType.FindByIssuerDistinguishedName, cnName, true);
x509Certificate2 = currentCerts.Count == 0 ? null : currentCerts[0];
}
}
}注意:我已经用以下命令创建了一个自签名的开发证书。
PS C:\program files\microsoft sdks\service fabric\clustersetup\secure> .\CertSetup.ps1 -Install -CertSubjectName CN=mytestcert安装后,我可以看到证书已创建并添加到受信任的根目录中。

我是不是在创建自签名证书时出错了?我不确定。
发布于 2019-06-18 13:58:40
您已将证书存储在StoreLocation.CurrentUser中,但您的代码正在StoreLocation.LocalMachine中查找。
另外,不要忘了添加正确的ACL's。
https://stackoverflow.com/questions/56633923
复制相似问题