我需要使用C#创建一个自签名证书(用于本地加密 - 它不用于保护通信).
我已经看到一些使用P/Invoke和Crypt32.dll的实现,但是它们很复杂并且很难更新参数 - 我还想尽可能避免P/Invoke.
我不需要跨平台的东西 - 只在Windows上运行对我来说已经足够了.
理想情况下,结果将是一个X509Certificate2对象,我可以使用该对象插入Windows证书存储区或导出到PFX文件.
我目前所做的是使用OpenSSL生成PFX文件.这导致了不必要的依赖,特别是对于Windows用户.所以我找到了一些关于如何使用BouncyCastle创建自己的证书的示例,但是这个库不兼容.NET Core(或者我找不到兼容的包).
那么,是否可以仅使用.NET内核创建自己的自签名X509证书,以避免依赖OpenSSL(或任何其他证书生成外部工具)?
编辑:有人(编辑?)建议这个问题如何使用C#创建自签名证书?提供了答案.遗憾的是,这与.NET Core无关.接受的答案从那开始This implementation uses the CX509CertificateRequestCertificate COM object (and friends - MSDN doc) from certenroll.dll to create a self signed certificate request and sign it,显然不是.NET Core ......实际上,没有一个答案是.NET Core兼容的.
我们使用CertEnroll在客户端上生成了有效的PKCS#10证书请求.
现在我们需要对其进行签名并将结果返回给客户端,其中CertEnroll将处理本地证书库的内容.
这是一个B2B应用程序,根签名证书将自行生成,或者我们可以使用我们现有的Thawte SSL证书.
Server(2008)没有运行Active Directory,除非绝对必要,否则我们不希望为此创建独立的签名基础结构/服务.不需要撤销等 - 我们希望以编程方式执行此操作.
我很乐意使用BouncyCastle库但是C#lib缺少任何有意义的文档,而原始的Java文档无疑是相似的,而C#实现的不同之处让我有点困惑.
是否有人知道(或有)样本C#(或VB)代码或已知相关的链接,使用BouncyCastle或本地.Net类?
完成这件事的任何帮助将不胜感激!
我正在尝试为本地主机生成受信任的自签名证书。该证书将用于控制台应用程序内的自托管 Web API。由于该项目的要求,必须信任本地主机连接,并且应用程序将安装在客户端 PC 上,这意味着必须以编程方式生成证书。
我已经成功地在 .Net Framework 中实现了这一点,并且一切似乎 100% 正常工作,但是当我将其转移到 .NetCore 时,我遇到了困难。我对 .NetCore 很陌生,所以我的知识非常有限。
我正在使用 Bouncy Castle 生成证书,但由于某种原因,当我尝试为 .NetCore 中的自签名证书分配私钥时,我收到“System.PlatformNotSupportedException:'此平台不支持操作”。例外。当我尝试使用“ DotNetUtilities.ToRSA(rsaparams) ”将RsaPrivateCrtKeyParameters转换为PrivateKey时,会发生此异常。
我遵循了此链接“动态生成自签名证书”上的确切答案。
由于我对 .NetCore 的了解非常有限,如果有人能指出正确的方向,我将不胜感激。
我想从其序列化形式加载证书请求 (CSR) 并对其进行签名。这在纯 .NET 中可能吗?
CSR 如下所示:
-----BEGIN CERTIFICATE REQUEST-----
MIIDejCCAmICAQAwZTE0MDIGCgmSJom....
-----END CERTIFICATE REQUEST-----
Run Code Online (Sandbox Code Playgroud)
它是使用 .NET 4.7.2 生成的CertificateRequest,类似于这个问题的答案:
Generate and Sign Certificate Request using pure .net Framework
然后将序列化的 CSR 发送到需要创建证书的服务器 - 问题是如何做到这一点。
c# ×3
certificate ×3
.net ×2
.net-core ×2
bouncycastle ×1
pfx ×1
self-hosting ×1
self-signed ×1
signing ×1
ssl ×1
x509 ×1