问题标签 [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.
c# - 将字节数组转换为 X.509 证书
我正在尝试将一段 Java 代码移植到 .NET 中,该代码采用 Base64 编码字符串,将其转换为字节数组,然后使用它来制作 X.509 证书以获取 RSA 加密的模数和指数。
这是我要转换的 Java 代码:
我一直在尝试找出将其转换为 .NET 的最佳方法。到目前为止,我想出了这个:
在我看来它应该可以工作,但是当我使用 Java 代码中的 base 64 编码字符串生成 X509 证书时,它会引发CryptographicException 。我收到的确切消息是:
找不到请求的对象。
Java 的 X.509 实现是否与 .NET 不兼容,或者我在从 Java 到 .NET 的转换中做错了什么?
或者在这种情况下根本没有从 Java 到 .NET 的转换?
openssl - 使用 OpenSSL 以编程方式将 .PEM 证书转换为 .PFX
我有一个要转换为 PKCS12 文件 (PFX) 的.PEM 文件,我知道我可以使用以下openssl
命令轻松完成此操作:
这很好,但我想使用OpenSSL调用以编程方式执行此操作。不幸的是,OpenSSL 的文档并不理想。
我已经研究过使用其他库来做到这一点:
使用 .NET:我可以从 PEM 文件创建 X509Certificate2 对象,但这只会获取第一个证书并忽略 PEM 文件中的任何中间 CA。
使用Mentalis.org安全库:我可以从 PEM 文件创建证书对象,但我在文档中看到以下内容:
备注 此实现仅从 PEM 文件中读取证书。它不会从证书文件中读取私钥(如果存在)。
所以,这对我没有帮助。我也需要那个私钥。
我基本上需要重新创建用于 PEM>PFX 的 OpenSSL 命令行工具操作,但在代码中。
有没有更简单的方法来做到这一点?
c# - 如何从 PKCS#12 字节数组构造 X509Certificate2 抛出 CryptographicException(“系统找不到指定的文件。”)?
我正在尝试X509Certificate2
从字节数组中的 PKCS#12 blob 构造一个并得到一个相当令人费解的错误。此代码在 Windows XP 上具有管理员权限的桌面应用程序中运行。
堆栈跟踪如下,但由于_LoadCertFromBlob
标记为[MethodImpl(MethodImplOptions.InternalCall)]
.
编辑: blob 是由BouncyCastle 为 C#生成的真正的 PKCS#12,包含 RSA 私钥和证书(自签名或最近使用 CA 注册)——我要做的是转换私钥和证书从 BouncyCastle 库到 System.Security.Cryptography 库,方法是从一个库导出并导入到另一个库。该代码适用于它尝试过的绝大多数系统。我只是从未见过该构造函数抛出的特定错误。在那个盒子上可能是某种环境怪异。
编辑2:错误发生在不同城市的不同环境中,我无法在本地重现它,所以我最终可能不得不将其归结为XP安装损坏。
不过,既然你问了,这是有问题的片段。该代码采用 BouncyCastle 表示形式的私钥和证书,从个人密钥存储中删除相同专有名称的任何先前证书,并通过中间 PKCS#12 blob 将新的私钥和证书导入个人密钥存储。
c# - 如何获取证书的密钥大小
我有一个 X.509 证书,需要获取其密钥的大小(以位为单位) - 例如,1024 2048 等。我查看了 X509Certificate2 以及 bouncycastle X509Certificate 类,但看不到如何获取密钥大小。
public-key-encryption - X509 使用序列号或公钥进行证书验证
谁能提供一些关于验证 X509Certificate 的建议。我已经在检查证书是否由受信任的根签名,但是我还想检查证书是否颁发给已知方。
最好的属性是什么?我正在考虑序列号或公钥,但不完全理解两者的含义。我猜公钥的寿命超出了任何重新颁发的证书,而 SerialNumber 仅限于在特定日期颁发的特定证书?
任何人都可以提供一些明智的建议吗?
编辑:看起来证书指纹可能是实现此目的的典型方法。
c# - 将 openssl 创建的自签名证书导入 X509Certificate2 (Mono):可以加密,不能解密
我在 Fedora 14、MonoDevelop 2.4、Mono 2.6.7 中。我因此生成了我的自签名证书:
然后我正在玩C#中的加密和解密。我正在选择 .crt 文件。问题是X509Certificate2
正在创建的没有私钥!因此,加密操作顺利,并解密炸弹。
我可能错误地运行了 openssl 命令。还是在创建X509Certificate2
对象时有些微妙之处?
c# - 使用数字签名验证服务器
我了解如何通过数字签名实现不可否认性和完整性,但这是我尚未掌握的身份验证。
我正在用 C# 开发一个客户端-服务器应用程序,它应该能够使用数字证书和数字签名进行身份验证。我知道如何检查签名的有效性和完整性(使用 SignedCms.CheckSignature()),但这如何验证所涉及的任何部分?
例如:
- 客户端向服务器请求数字签名,
- 客户端收到签名并验证它,
- 如果验证成功,请继续。
客户端可能是中间人攻击的受害者,并在步骤 2 中接收到有效签名。验证会成功,但客户端不会与正确的服务器通信。
我错过了什么?
c# - 将证书导出为 BASE-64 编码的 .cer
我正在尝试将没有私钥的证书导出为 BASE-64 编码文件,与从 Windows 中导出它相同。从 Windows 导出时,我可以在记事本中打开 .cer 文件。
当我尝试以下操作并在记事本上打开时,我得到二进制数据......我认为它......不可读。
我尝试删除“X509KeyStorageFlags.Exportable”,但这不起作用。我错过了什么吗?
编辑 - 我试过
但是,这似乎可行,缺少“-----BEGIN CERTIFICATE-----”和“-----END CERTIFICATE-----”
iis - HttpWebRequest 客户端证书在 IIS 中不起作用
我正在尝试创建一个托管在 IIS 中的 WCF 应用程序。此 WCF 应用程序将调用第三方网站下载 CSV 文件。第三方网站提供了一个证书来验证 WCF 调用。我的开发环境是
-操作系统:Windows 2008R2 -工具:Visual Studio 2010 (.Net 4.x)
在开发过程中,使用 HttpWebRequest 进行调用没有问题,但是在 IIS 中部署相同的东西后,它给了我以下错误,即使我使用 IIS 作为开发服务器运行 Visual Studio 2010,
"\r\n证书信息与登录不匹配,连接被拒绝。"
安装期间的证书需要密码。我已将其安装在“我的用户帐户”和“计算机帐户”中。它也安装在 IE 中。在所有安装中,它都安装在“受信任的根证书颁发机构”中。但是,我仍然收到错误消息。我在下面给出了我的代码片段,
如果有人可以提供任何信息,那就太好了,再次感谢,
.net-3.5 - .NET 3.5 - 导出 X509Certificate2 PublicKey - 找不到请求的对象
我正在尝试X509Certificate2
使用以下代码导出证书的公钥:
当我执行最后一行时,会引发以下异常:
有谁知道如何解决这个问题?
注意:上面的代码示例是“功能性的”,但它是伪代码。实际上,我在一个应用程序中导出证书,然后为了数字签名而传输到另一个应用程序(因此只发送公钥)