我想在我的ASP.Net Core 2.0(使用Kestrel Web服务器)应用程序中使用HTTPS。
The official documentation使用pfx格式,但我想直接使用 PEM 格式(从Let的加密生成)而不进行任何转换(至少在我的C#之外没有任何内容)码)。有可能吗?
答案 0 :(得分:3)
简短的回答是你无法做到。至少,你不能完成很多工作或使用像Bouncy Castle这样的东西。
当证书和密钥放在PFX中时,X509Certificate2对象将具有cert.HasPrivateKey == true
,并且能够通过Get[Algorithm]PrivateKey
扩展方法系列使用私钥。当您加载PEM证书时,只加载了公共证书部分(并且如果它是PEM证书,其上粘有PEM密钥?它仍然只是一个PEM证书)。
获取与证书关联的私钥的简便方法是使用新的(在.NET Core 2.0中)certWithKey = cert.CopyWithPrivateKey(key)
扩展方法系列。所以现在你"只是"需要加载私钥。 .NET目前无法加载(或保存)" .key"文件(无论它们的扩展名是什么)。如果你想加载一个破解,你可能想要检查一些现有技术:
好消息是.NET计划在将来支持加载密钥(https://github.com/dotnet/corefx/issues/20414),但由于它还没有完成(更少发布),对你没有帮助现在。