【问题标题】:.NET configure server certificate for an application.NET 为应用程序配置服务器证书
【发布时间】:2019-11-29 14:01:27
【问题描述】:

我对 .NET 完全陌生,遇到了一个与代理应用程序相关的问题。 它是一个物联网代理应用程序,将被部署和运行 Windows 和 Linux 系统。

该应用程序是基于 Web 服务的应用程序,并使用 HTTPS 证书来启用客户端和代理之间的安全通信。当我尝试在其中一个系统上运行应用程序时,出现错误

System.InvalidOperationException: Unable to configure HTTPS endpoint. No server certificate was specified, and the default developer certificate could not be found.

浏览了大部分帖子后,发现我们需要在系统上下载安装'dotnet'运行时并运行以下命令

dotnet dev-certs https
dotnet dev-certs https --check

但是,对于开发环境,可以运行这些命令。我正在寻找一种解决方案,让我们无需下载和安装 dotnet 运行时环境即可运行应用程序。

运行应用程序可能需要哪些初始配置设置?

【问题讨论】:

    标签: c# .net https


    【解决方案1】:

    这不是您缺少的运行时(您将无法执行应用程序并获得异常)。您缺少服务器的有效证书。

    在开发机器上你会发出命令

     dotnet dev-certs https --trust
    

    安装受信任的自签名证书。在生产服务器上,您必须安装来自证书服务器的证书,或者如果它可以从受信任的证书颁发机构公开访问。

    【讨论】:

    • 嗨,彼得,感谢您的回答。当然,我会尝试获取有关如何获取服务器证书的详细信息。
    • 嗨,Peter,在查看详细信息后,我发现应用程序正在使用 KestrelServer。我认为它需要将 HTTPS 配置设置到网络服务器配置中。请在这里纠正我。
    【解决方案2】:

    终于可以在具有 PFX 证书的 Windows 7 和 Windows 10 机器上运行应用程序了。

    您需要生成证书。您可以按照以下链接生成证书。

    https://www.sslsupportdesk.com/export-ssl-certificate-private-key-pfx-using-mmc-windows/

    需要在 JSON 文件中配置 Kestrel 设置。以下是使用证书的可能 JSON 配置

    {
      "Kestrel": {
        "Endpoints": {
          "Https": {
            "Url": "https://localhost:9448",
            "Certificate": {
              "Path": "path/to/certificate/file/your-cert.pfx",
              "Password": "PwdOfCert",
              "AllowInvalid": true
            }
          }
        }
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-11
      • 2017-10-10
      • 2016-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-04
      相关资源
      最近更新 更多