是否可以在 Windows 服务器存储上存储 .PEM 文件并以编程方式读取它
Posted
技术标签:
【中文标题】是否可以在 Windows 服务器存储上存储 .PEM 文件并以编程方式读取它【英文标题】:Is it possible to store .PEM file on windows server store & read it programatically 【发布时间】:2019-01-14 16:21:03 【问题描述】:通常我们将 .P12(证书)文件保存在 windows 服务器存储中。可以使用this link 存储证书。似乎只允许保存以下扩展。
-
.P12 - 个人信息交换
.PFX - 个人信息交换
.P7B - 加密消息语法标准
.SST - Microsoft 序列化证书存储
我使用了 OpenSSL 并从我的 .P12 证书生成了两个 .PEM 文件(私钥和证书)。 是否可以将这些文件存储在 windows server store 中?
我们可以通过以下方式读取证书:
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();
【问题讨论】:
重点是什么?为什么不使用已经支持的.p12
文件?
我正在使用 PhantomJs,但无法使用 .P12 文件。但它适用于 .PEM 文件。
【参考方案1】:
是否可以将这些文件存储在 windows server store 中?
不,你不能,因为微软在将密钥加载到提供程序时使用 CSP(加密服务提供程序)概念,并且提供程序使用私钥处理所有操作。从历史上看,CSP 使用自定义密钥格式,该格式不向后兼容 PKCS#1 或 PKCS#8 密钥格式。
您的想法很简单:针对特定应用使用一对.pem
和.key
文件。对于其他 Windows 应用,请使用从 PFX 导入的证书存储中的 PFX 或证书。
【讨论】:
以上是关于是否可以在 Windows 服务器存储上存储 .PEM 文件并以编程方式读取它的主要内容,如果未能解决你的问题,请参考以下文章
是否可以在远程 Windows 服务器上确定证书私钥的文件名?
是否可以使用非交互式的默认Windows凭据对远程Git存储库进行身份验证?