gpt4 book ai didi

linux - 从 appsettings.json 加载 SSL 证书

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:13:22 25 4
gpt4 key购买 nike

我构建了一个 .NET 核心 2.2 应用程序,我正在将其加载到树莓派上。我正在使用 Kestrel 托管 Web 服务。在 pi 上,我创建了一个自分配的 certificate.pfx。如果我将带有证书名称和密码的 .UseHttps 硬编码到应用程序中,浏览器就可以找到它。

但是,如果我将其从代码中注释掉并改为使用 appsettings.json 文件(我希望它在 appsettings.json 中,以便客户端可以上传他们自己的证书),重定向到 Https 将起作用,但是证书未加载,页面无法连接。

这是我用来配置我的 appsettings.json 文件的文档: https://learn.microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel?view=aspnetcore-2.2

证书位于应用程序文件夹中。

目前我已将此代码从应用程序中注释掉,但是当代码未被注释时它确实有效。我希望通过 appsettings.json 文件设置这些相同的设置。

public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.ConfigureKestrel((context, options) =>
{
/*options.Listen(IPAddress.Any, 80);*/ // http:*:80
//options.Listen(IPAddress.Any, 5001, listenOptions =>
//{
// listenOptions.UseHttps("certificate.pfx", "password");
//});
});

这是 appsettings.json 文件:

{
"https_port": 5001,
"Logging": {
"LogLevel": {
"Default": "Warning"
}
},
"AllowedHosts": "*",
"AllowInvalid": true,
"Kestrel": {
"Endpoints": {
"Http": {
"Url": "http://*:80"
}
},
"Https": {
"Url": "https://*:5001",
"Certificate": {
"Path": "certificate.pfx",
"Password": "password"
}
}
}
}

最佳答案

这篇文章最终得到了我需要的解决方案:

https://www.humankode.com/asp-net-core/develop-locally-with-https-self-signed-certificates-and-asp-net-core

更准确地说,是标题为“在 ASP.NET Core 2.0 中配置 HTTPS”的文章部分

我没有使用 appsettings.json,而是创建了一个名为 certificate.json 的新 json 文件。

然后,我将证书名称和密码从 certificate.json 提取到 program.cs 代码中。

关于linux - 从 appsettings.json 加载 SSL 证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57892285/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com