是否可以在Windows服务器存储上存储.PEM文件并以编程方式读取它

时间:2019-01-14 16:21:04

标签: c# .net x509certificate pem p12

通常,我们在Windows服务器存储上保留.P12(证书)文件。可以使用this link存储证书。似乎只允许保存以下扩展名。

  1. .P12-个人信息交换
  2. .PFX-个人信息交换
  3. .P7B-加密消息语法标准
  4. .SST-Microsoft序列化证书存储区

我使用过OpenSSL,并从我的.P12证书生成了两个.PEM文件(私钥和证书)。 是否可以将这些文件存储在Windows服务器存储上?

我们可以通过以下方式读取证书:

     X509Store store = new X509Store(StoreLocation.CurrentUser);
     store.Open(OpenFlags.ReadOnly);

        X509Certificate2Collection cers = store.Certificates.Find(X509FindType.FindBySubjectName, "My Cert's Subject Name", false);
        if (cers.Count>0)
        {
            cer = cers[0];
        };
        store.Close();

1 个答案:

答案 0 :(得分:1)

  

是否可以将这些文件存储在Windows服务器存储上?

不,您不能这样做,因为在将密钥加载到提供程序中并且提供程序处理所有具有私钥的操作时,Microsoft使用CSP(密码服务提供程序)概念。从历史上看,CSP使用自定义密钥格式,该格式与PKCS#1或PKCS#8密钥格式不向后兼容。

您的想法很简单:针对特定应用程序使用一对.pem.key文件。对于其他Windows应用程序,请使用PFX或从PFX导入的证书存储中的证书。