asp.net-core - ASP.NET Core 应用程序设置生产 SSL 证书
问题描述
我可以在我的开发盒上运行良好,但不能在产品中运行。
我的服务器上为我的域安装了 SSL 证书。
如何告诉我的 ASP.NET Core 应用程序使用哪个证书?我想我需要添加一些东西让它知道。
我问是因为目前我得到:
无法启动 Kestrel。System.InvalidOperationException:无法配置 HTTPS 端点。未指定服务器证书,默认开发人员证书找不到或已过期。
试图让它在 IIS 上运行,但没有任何运气,所以使用 Kestrel 进行测试只需在我的工作机器和服务器上单击它。
解决方案
如何告诉我的 ASP.NET Core 应用程序使用哪个证书?我想我需要添加一些东西让它知道。
据我所知,我们可以使用 kestrel 或 IIS 来托管应用程序。
如果您想为将由 kestrel 托管的 Web 应用程序绑定证书,我建议您可以尝试通过调用以下方法来配置证书:
UseHttps(X509Certificate2 serverCertificate)
更多细节,您可以参考以下代码(程序 CreateHostBuilder 方法):
webBuilder.UseKestrel(serverOptions =>
{
serverOptions.Listen(IPAddress.Loopback, 5001,
listenOptions =>
{
listenOptions.UseHttps("testCert.pfx",
"testPassword");
});
});
如果要为IIS托管的Web应用程序绑定证书,无需修改program.cs代码,直接使用IIS管理控制台设置SSL即可。
更多细节,你可以参考这篇文章。
推荐阅读
- python - 在二进制分类 CNN 中每个数据点使用多个图像
- react-native - 带有可选字段的验证表单 react-hook-forms
- amazon-web-services - Lambda 和 DynamoDB:无权执行:dynamodb:UpdateItem。用户具有管理员权限
- javascript - 检查数组是否包含一些特殊字符
- javascript - Todolist 反应钩子
- python - 在不结束程序的情况下中断循环(python)
- sql - 在雪花中转换数字字符串
- if-statement - 为什么在各种语言的 If 语句中都允许这样做?
- c# - 如何从方法中返回多个值?
- java - Java:如何从嵌套数组中删除一个字母