问题标签 [x509certificate2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
497 浏览

security - .NET 中的 x509 证书 - PrivateKey XML-values 和 Cert RawData 之间的区别

我正在考虑一个对称加密方案,它使用本身从 X509 证书派生的加密密钥。我意识到这不是不对称的,也许很奇怪,但它是一个实验。

我的目标是从 x509 证书中访问私钥或某些部分,作为“密钥”派生函数的输入。

愚蠢的问题:私钥x509Certificate2 是什么属性?PrivateKey本身就是算法。该算法ToXmlString枚举了几个Modulus, Exponent, P, Q, DP, DQ, InverseQ, D我怀疑是供应商特定的值()。也是x509Certificate2.RawData可用的。

在谈论 Encrypt-with-public-key / decrypt-with-private-key 非对称算法时......上述哪些属性(如果有)是私钥?

提前致谢,

霍华德霍夫曼

0 投票
2 回答
1348 浏览

c# - 无需密码即可使用 X509Certificate

我有一个证书,我需要使用它才能访问 Web 服务。问题是每当我尝试使用 X509 证书时,它都会要求输入密码 (PIN)。有没有办法直接提供密码,而不是每次都弹出同一个窗口?

我讨厌这个窗口

该证书使用 Oberthur Technologies 制造的加密狗,如果有帮助的话。这是我用来获取证书的代码:

这是我使用证书的地方:

0 投票
4 回答
22046 浏览

c# - 如何使用 C# 从 PKCS#12 (.p12) 文件中获取私钥

我试图使用 PKCS#12 证书签署一些数据,但是我在从 PKCS#12 (.p12) 文件中获取私钥时遇到问题。

问题是 newCert.PrivateKey 为空,但如果我以类似的方式使用 .pfx 证书,它可以工作。

所以问题是如何从 .p12 文件中获取该私钥?

0 投票
1 回答
594 浏览

x509 - 交换 Web 服务 x509 证书

我正在尝试连接到 Exchange Web 服务,以通过我自己的 Web 服务 (ASP/WCF) 代表用户发送电子邮件。我的代码在能够连接到交换服务器的台式 PC 上运行时工作正常,但是在通过 Internet 操作时无法访问交换服务器,因此我试图通过我的 Web 服务器进行连接。

我正在寻找在不使用 Exchange Web 服务模拟的情况下以其他用户身份登录的方法(因为我被告知不要使用它,除非绝对没有其他方法)并且用户不提供密码。

我有以下代码:

Unable to cast object of type 'System.Security.Cryptography.X509Certificates.X509Certificate' to type 'System.Net.ICredentials'.但由于异常,这不起作用。

谁能指导我如何使用 X509 证书对 Exchange Web 服务进行身份验证,而不是使用网络凭据或用户名/密码

0 投票
1 回答
931 浏览

wcf - X509Certificate 实施最佳实践

首先,感谢所有那些试图帮助不知名人士的耐心技术人员。

其次,我有一个 wcf 服务,它应该只被我们公司知道的几个客户 (10) 使用。此 wcf 服务具有 x509 证书“CN=ABCD”。现在它希望依次从客户端接收证书以使用此服务。所以这里是设计问题

  1. 我应该创建一个证书 "CN=ABCD" ,然后右键单击它并导出为 pfx 文件并将它们分发给客户吗?
  2. 有人说在代码中验证,有人说在配置中验证哪个更好?
  3. 如果我的公司分发证书,我应该如何知道哪个客户正在调用它,因为证书对所有人都有相同的名称?
  4. .cer 文件和 .pfx 文件有什么区别?
  5. 将证书传递给客户时,我会同时提供 .cer 和 .pfx 文件吗?
  6. 如果过期,我应该如何只撤销一个客户?
  7. 我的公司已经拥有像 *.fdfd.org 这样的证书。我可以将其用作我的 X509Certificate 而不是生成一个吗?

许多问题!
但是由于很多挫折,我想得到开发人员的意见,因为我无法获得正确的信息。

0 投票
1 回答
6794 浏览

exception - ASP.NET MVC:“发生内部错误。” 使用 X509Certificate2 加载证书字节时

我已经花了几个小时来解决这个错误。奇怪的是,当我独立使用这个库时,它工作得非常好,但是当我将它们与我的 ASP .NET MVC 网站集成时,它开始抛出以下异常。我还根据此处的建议使用了 MachineKeySet 标志,但仍然没有运气。谁能帮我摆脱这个例外。谢谢。

发生了内部错误。

说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息:System.Security.Cryptography.CryptographicException:发生内部错误。

源错误:

第 194 行:if (string.IsNullOrEmpty(p12FilePassword)) 第 196 行:证书 = new X509Certificate2(p12FileBytes, "", X509KeyStorageFlags.MachineKeySet); 第 197 行:否则

0 投票
1 回答
1691 浏览

asp.net - 缓解 Web 服务器上的 RsaCryptoServiceProvider 线程安全问题

我有一个X509Certificate2实例,并获取它的PrivateKey属性,即RsaCryptoServiceProvider. MSDN 文档表明此类RsaCryptoServiceProvider不是线程安全的。因此,如果给定一些 X.509 证书,我需要在多个线程上执行非对称加密(通常在 Web 服务器上),创建多个实例的最佳方法是RsaCryptoServiceProvider什么?

上的私钥X509Certificate2未标记为可导出,因此我不能简单地导出原始参数RsaCryptoServiceProvider并将它们重新导入另一个实例以解决线程安全问题。

我通过 获得了原始的X509Store,但这似乎是一个X509Certificate2实例的集合,因此如果我想要一个新的实例,RsaCryptoServiceProvider我必须实例化一个new X509Store来找到一个 X509Certificate2的,以获得一个 RsaCryptoServiceProvider的. 让 .NET 克隆RsaCryptoServiceProvider实例似乎非常重要。

有没有更好的方法?

0 投票
2 回答
27209 浏览

c# - 尝试从 Windows certstore 读取 PrivateKey 时出现异常

我使用 OpenSSL 创建了一个私钥和公钥对,然后生成了一个 .p12 文件以将其导入我的 Windows certstore。密钥对和 .p12 文件是在 Windows XP 中创建的,我正在尝试在 Windows 7 中使用它。我正在尝试从 IIS 中的 Web 服务 (.svc) 中访问密钥。如果我尝试从独立应用程序中读取私钥,我可以毫无问题地做到这一点,但是当我尝试从我的网络应用程序中读取它时,我总是会遇到以下异常:

这是整个堆栈跟踪:

这是我读取密钥的代码部分:

我想它与某种许可问题有关,但我无法找出它是什么......如果有人有任何建议,我们将不胜感激。

需要考虑的事项:

  • 私钥是可导出的。
  • 用户 IIS_IUSRS 对证书具有权限。
0 投票
1 回答
916 浏览

sharepoint - 如何使用 X509Certificate2 作为 SharePointService 请求的凭据

我有一个需要客户端证书才能访问的 MOSS 2007 场。我编写了几种使用内置 SharePoint 服务从站点检索数据的方法。但是,在我的本地测试环境之外,一切都需要客户端证书才能访问服务。

我检索证书的方法是:

然后在使用中我必须有一些像这样的东西:

由于类型不匹配,因此无法编译。我会以错误的方式解决这个问题吗?如果没有,有没有办法将证书用作服务凭证?我认为最终我要做的是将 X509Certificate2 转换为 ICredentials。任何帮助或建议将不胜感激。

0 投票
1 回答
703 浏览

c# - X509Certificate2:内部错误

当我尝试执行下面的代码时,出现错误:

发生内部错误。

当我添加

我得到另一个错误:

拒绝访问。

我该如何解决?

提前致谢。

问候,

斯捷潘。