【问题标题】:x509Certificate2 returning null - ssl certificatex509Certificate2 返回 null - ssl 证书
【发布时间】:2019-10-31 04:50:15
【问题描述】:

我已经安装了 ssl 证书,但是当我使用 certCollection.Find by Extension 时,它返回 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

安装后,我可以看到证书已创建并添加到受信任的根目录中。

我在创建自签名证书时是否犯了一些错误。我不确定。

【问题讨论】:

    标签: .net-core azure-service-fabric


    【解决方案1】:

    您已将证书存储在 StoreLocation.CurrentUser 中,但您的代码正在查看 StoreLocation.LocalMachine

    另外,不要忘记添加正确的ACL's

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-23
      • 2015-07-05
      • 2017-01-06
      • 2017-04-23
      • 1970-01-01
      • 2015-04-12
      • 1970-01-01
      • 2015-08-08
      相关资源
      最近更新 更多