在 .Net Core 控制台应用程序中生成受信任的自签名证书

Generate Trusted Self-Signed Certificate in .NetCore Console Application

我正在尝试为本地主机生成受信任的自签名证书。此证书将用于控制台应用程序内的自托管 Web API。由于此项目的要求,必须信任本地主机连接,并且应用程序将安装在客户端 PC 上,这意味着必须以编程方式生成证书。

我已经设法在 .Net Framework 中做到这一点,而且一切似乎都 100% 有效,但是一旦我将它移至 .NetCore,我就碰壁了。我对 .NetCore 很陌生,所以我的知识非常有限。

我正在使用 Bouncy Castle 生成证书,但出于某种原因,当我尝试在 .NetCore 中为自签名证书分配私钥时,出现 "System.PlatformNotSupportedException: 'Operation is not supported on this platform." 异常。当我尝试使用“DotNetUtilities.ToRSA(rsaparams)".

我遵循了这个link“Generate self signed certificate on the fly”的确切答案。

由于我对 .NetCore 的了解非常有限,如果有人能指出正确的方向,我将不胜感激。

具体问题是.NET Core不支持cert.PrivateKey上的setter。

最接近的模拟是cert.CopyWithPrivateKey,但代码不同。而不是

cert.PrivateKey = key;
return cert;

你需要更像

return cert.CopyWithPrivateKey(key);

因为 CopyWithPrivateKey 创建了一个新的 X509Certificate2 对象,目标对象保持不变。

FWIW,您现在可以在没有额外依赖项的情况下完成整个证书创建,如 .

所示