Certificate 是否从Windows server证书存储加载服务器端证书*和*私钥?
我正在尝试获取这个外部REST Web服务,它需要一个服务器端证书和一个私钥(这两个密钥我都是作为该服务的Certificate 是否从Windows server证书存储加载服务器端证书*和*私钥?,certificate,x509certificate,certificate-store,Certificate,X509certificate,Certificate Store,我正在尝试获取这个外部REST Web服务,它需要一个服务器端证书和一个私钥(这两个密钥我都是作为该服务的*.pem文件从发布者那里获得的) 为了进行测试,我在谷歌上搜索并找到了一种方法,可以将这两部分组合成一个*.pfx文件,然后从磁盘上的二进制文件加载一个X509Certificate2实例就可以了 现在,我正试图将其放入我的Windows Server 2008产品上的Cert Store中 我可以从我的C#code中的cert store获得X509Certificate2-没问题: X
*.pem
文件从发布者那里获得的)
为了进行测试,我在谷歌上搜索并找到了一种方法,可以将这两部分组合成一个*.pfx
文件,然后从磁盘上的二进制文件加载一个X509Certificate2
实例就可以了
现在,我正试图将其放入我的Windows Server 2008产品上的Cert Store中
我可以从我的C#code中的cert store获得X509Certificate2
-没问题:
X509Store store = new X509Store(StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadOnly);
X509Certificate2Collection certs = store.Certificates.Find(X509FindType.FindBySerialNumber, "serial-number-here", false);
if (certs.Count > 0)
{
X509Certificate2 cert = certs[0];
// set the certificate on the RestClient to call my REST service
_restClient.ClientCertificates.Add(cert);
}
store.Close();
但当我这么做的时候,web服务就会向我吐口水,声称它需要一个“SSL证书”
另外:当我从磁盘加载X509Certificate2
时,从*.pfx
文件中,我必须提供密码-从证书存储加载时,此处无需提供任何信息。。。。奇怪
似乎即使我导入了同时包含服务器端证书和我们的私钥的*.pfx
,但不知何故,我无法从证书存储中同时获取这两个证书
你知道我该怎么做吗?我是否需要在第二步中从证书存储加载私钥?怎么做
这些证书对我来说仍然是一个很大的巫毒般的谜。。。。。有人能告诉我吗?首先要检查的是证书存储是否有私钥
您没有写web服务是如何实现的
客户端身份验证
另外:当我从磁盘加载X509Certificate2时
*.pfx文件,我必须提供密码-从证书存储加载时,此处无需提供任何信息。。。。奇怪
这就是它的工作原理。当您拥有pfx时,其中的私钥将使用密码进行保护/加密(密码可以是空字符串)。当您将pfx导入证书存储时,私钥将使用其他密钥进行安全/加密(不完全确定它是什么密钥)。但是,您可以通过在将pfx导入存储时指定强保护来为私钥添加另一级别的保护(我不建议将其与ASP.NET、web服务或任何没有桌面的设备一起使用)。但是,当您的个人证书用于签署电子邮件时,启用它可能会很好。当应用程序试图使用私钥时,Windows将弹出一个窗口
@DanL关于私钥和他的密码的权利可能是正确的
1) -设置私钥和密钥的权限
2) -访问X509Certificate2中的私钥
你写得很好。我只想添加到1)您正试图从ASP.NET应用程序或IIS上的其他web服务连接到REST服务,那么您需要为其添加权限的帐户名为IIS APPPOOL\name\u of the_APPPOOL\u您的应用程序运行在