【问题标题】:Use SSL Certificate in ASP.NET Core 2.1 while Developing开发时在 ASP.NET Core 2.1 中使用 SSL 证书
【发布时间】:2019-02-18 11:02:59
【问题描述】:

在 ASP.NET Core 2.1 I 应用程序 appSettings 文件中,我有以下内容:

"Kestrel": {
  "Certificates": {
    "Default": {
      "Path": "localhost.pfx",
      "Password": "1234"
    }
  }
}  

我使用 dotnet 命令创建了证书:

dotnet dev-certs https -ep "localhost.pfx" -p 1234

我将 localhost.pfx 文件沿 appSettings 文件复制到项目根目录。

当我在http://localhost:5000 上运行项目时,它会被重定向到https://localhost:5001

但是,我收到浏览器错误,提示连接不安全并要求我添加异常。

我做错了什么?

【问题讨论】:

  • 你用的是什么浏览器?
  • 我试过火狐和谷歌浏览器
  • 您是否尝试过在dev-certs 命令中使用--trust 标志? dotnet dev-certs https -ep "localhost.pfx" -p 1234 --trust.
  • 为了真正受到信任,必须将自签名证书添加到 Windows 中的信任证书存储区(这是 --trust 参数实现的),但您也可以这样做手动。但是,这只影响依赖于 Windows 受信任证书存储的浏览器,据我所知,只有 IE、Edge 和 Chrome。尤其是 Firefox,没有,所以您仍然需要在 Firefox 中添加手动异常。

标签: asp.net-core asp.net-core-2.1


【解决方案1】:

简答

包括--trust 选项。

dotnet dev-certs https -ep "localhost.pfx" -p 1234 --trust

这将创建一个可以与这些 appsettings.json 一起使用的证书:

"Kestrel": {
  "Certificates": {
    "Default": {
      "Path": "localhost.pfx",
      "Password": "12345"
    }
  }
}

注意事项

如果您需要重新创建证书,请先清理证书存储。

dotnet dev-certs https --clean

--trust 选项将立即与 Chrome 一起使用;但是,对于 Firefox,我们仍然需要添加一个安全例外。

使用--trust 意味着我们不再需要将"Kestrel" 部分添加到appsettings.json 文件中。

【讨论】:

  • 使用您建议的选项仍然需要将证书添加到项目路径并将红隼部分添加到设置中?我问这个是因为我认为使用本地证书文件,例如在项目根目录上,而不是将其添加到商店。
  • 没有。使用 --trust 标志,无需将自定义 kestrel 设置添加到 appsettings.json。
  • 使用非自签名证书的生产 SSL 怎么样?
  • @Wes 我建议为此打开另一个 StackOverflow 问题。
猜你喜欢
  • 2014-08-06
  • 2014-07-14
  • 2021-06-07
  • 1970-01-01
  • 1970-01-01
  • 2021-01-01
  • 2016-03-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多