c# - 不使用 keystore 的客户端证书

标签 c# .net ssl client-certificates

我想弄清楚是否有任何方法可以让 .NET 客户端使用客户端证书而不以任何方式涉及 Windows keystore 。

我有这样的代码片段:

test1.Service s = new test1.Service();
X509Certificate c = X509Certificate.CreateFromCertFile(@"C:\test.pem");
s.ClientCertificates.Add(c);
int result = s.TestMethod();

但是,这仅在我的证书库中安装了“test.pem”中引用的证书时才有效。我认为这是因为 key 是谈判所必需的。如果我在商店中没有证书/ key ,则证书不会随请求一起发送。

我想要做的是能够从一个或多个文件中提供证书和私钥,而不以任何方式涉及 Windows 证书存储。

有什么办法吗?

最佳答案

我将发布我自己的帖子的答案,但会保持开放状态,看看其他人是否可以用不同的方式解决它。

基本上,我在赌。如果您有一个 PKCS12 文件(其中包含 key 和证书),您可以使用 X509Certificate2 类加载该文件并使用它,它不会询问 keystore 。

我找不到使用平面 PEM key 和证书文件(例如您需要使用 Python 的文件)来执行此操作的方法。

关于c# - 不使用 keystore 的客户端证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/473494/

相关文章:

.net - 实体命令执行异常 : Invalid column name 'Entity_Id'

c# - DateTime.ParseExact 在 C# 中省略毫秒?

windows - 如果命令成功,则继续下一步

ssl - 如果我的参数已经加密,我应该使用 SSL 吗?

ssl - 我想为 zeppelin 服务器创建一个 ssl 证书

javascript - ASP .NET MVC 表单提交不会再次触发 Controller 操作方法。

c# - 使用 restful wcf 将图像发送到 android 应用程序

c# - xml 元素列表到公共(public)基类型的数组

c# - 没有为命令对象设置命令文本

c# - 通过 Ninject 解析对象时指定类型