首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将SSL证书应用于.NET 5 api?

如何将SSL证书应用于.NET 5 api?
EN

Stack Overflow用户
提问于 2021-12-14 17:17:11
回答 1查看 277关注 0票数 1

我也读过其他类似的答案,但他们要么使用IIS,要么谈论自签名证书,要么根本就没有达到目的。

我正在尝试创建一个简单的web,它将使用.NET 5托管在带有的Windows机器中。

我能够创建一个自签名证书并在开发过程中使用它,但是这将托管在客户端的计算机中,并且他们可能有一个SSL证书。在过去,对于仅在本地主机上运行的web应用程序,我做了如下操作:

代码语言:javascript
复制
 public static IHostBuilder CreateHostBuilder ( string [] args ) =>
            Host.CreateDefaultBuilder( args )
                .ConfigureWebHostDefaults( builder =>
                {
                    builder.UseStartup<Startup>();
                    builder.UseKestrel(options => {
                        if ( ServerConfiguration.ShouldUseHttps() )
                        {
                            options.Listen( IPAddress.Any, 6050, listenOptions =>
                             {
                                 listenOptions.UseHttps( Path.Combine( "Certificates", "cert.pfx" ), CertificatePassword );
                             } );
                        }
                        else
                        {
                            options.Listen( IPAddress.Any, 6050 );
                        }
                    } );
                } );

其中cert.pfx是我自己签署的证书。我将该证书随软件一起发送,并告诉客户端安装它,然后他们可以使用HTTPS,浏览器将信任证书。对于本地主机应用程序来说,可能已经足够了,但是对于公开的API来说还不够。

因此,假设客户端购买了一个SSL证书,我希望我的.NET应用程序使用该证书,该证书将与我的应用程序安装在同一台计算机上。我怎样才能做到这一点?

现在,我刚刚在另一台计算机中部署了我的应用程序,没有任何证书或其他任何东西,但是当然,我会收到“SSL证书不能信任”的错误(例如,在postman中)。

如果客户端不购买SSL证书,我们可以使用自签名证书吗?

非常感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-15 00:55:38

不要在代码中配置端点。相反,在您的appsettings.json文件中配置它们,如Kestrel文献中所述。您可以只配置一个端点,也可以配置多个端点。

下面是一个具有HTTP和HTTPS端点的示例配置,其中包含一个带有密码的pfx文件的证书:

代码语言:javascript
复制
{
  "Kestrel": {
    "Endpoints": {
      "Http": {
        "Url": "http://localhost:5000"
      },
      "HttpsInlineCertFile": {
        "Url": "https://localhost:5001",
        "Certificate": {
          "Path": "<path to .pfx file>",
          "Password": "<certificate password>"
        }
      }
    }
  }
}

文档显示了证书的不同配置,如.pem和密钥文件(例如,让我们加密)或使用。

这样,如果客户端获得了他们自己的证书,这只是一个更新appsettings.json的问题。

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

https://stackoverflow.com/questions/70353000

复制
相关文章

相似问题

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