首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在asp .net核心API中配置ssl证书的问题

在asp .net核心API中配置ssl证书的问题
EN

Stack Overflow用户
提问于 2021-12-14 12:57:06
回答 1查看 1.1K关注 0票数 0

我有以下证书证书

我希望将我的asp .net核心web配置为使用这些证书,以便使用https重定向。我正在使用Kestrel作为应用程序设置。

代码语言:javascript
运行
复制
{
  "Kestrel": {
    "EndPoints": {
      "Https": {
        "Url": "https://jj.com:5002"
      }
    }
  }
}

我在读一些在线帖子时,试图自己做,但没有结果。下面是我在Startup.cs文件中的配置方法。

代码语言:javascript
运行
复制
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerManager logger)
        {

            app.UseSwagger();

            app.UseSwaggerUI(c =>
            {
                c.SwaggerEndpoint("/swagger/v1/swagger.json", "General API");
                c.SupportedSubmitMethods();
            });

            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
                app.UseHsts();
            }


            app.UseHttpsRedirection();

            app.UseStaticFiles();

            app.UseRouting();

            app.UseAuthentication();

            app.UseAuthorization();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllerRoute(
                    name: "default",
                    pattern: "{controller}/{action}");
            });
        }

以下是我的Program.cs文件内容:

代码语言:javascript
运行
复制
  public class Program
    {
        public static void Main(string[] args)
        {
            CreateHostBuilder(args).Build().Run();
        }

        public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
            .ConfigureServices((context, services) =>
            {
                services.Configure<KestrelServerOptions>(
                context.Configuration.GetSection("Kestrel"));


            }).ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.UseStartup<Startup>();
                webBuilder.UseSetting("https_port", "443");

                webBuilder.ConfigureKestrel(o =>
                {
                    o.ConfigureHttpsDefaults(o =>
                o.ClientCertificateMode =
                    ClientCertificateMode.RequireCertificate);
                });

            }).UseWindowsService();

    }

任何帮助都将不胜感激!

EN

回答 1

Stack Overflow用户

发布于 2022-05-18 07:48:54

如果我正确地理解了您的问题,那么您只希望在kestrel上有https。您可以做的是在appsetting.json上添加以下设置

"HTTPS_PORT": "5151", "Kestrel": { "EndpointDefaults": { "Protocols": "Http1" }, "Certificates": { "Default": { "Path": "server_cert.pfx", "Password": "password" } } },

对于这一行,只有当您想使用客户端证书时,o.ClientCertificateMode = ClientCertificateMode.RequireCertificate);才使用它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70349256

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档