如何运行“dotnet dev-certs https --trust”?

2023-12-13

我是 ASP.NET 新手。

环境:

  • 乌班图18.04

  • 视觉工作室代码

  • .NET SDK 2.2.105

我在运行某些命令时遇到麻烦。

我正在阅读教程

并运行这个命令:

dotnet dev-certs https --trust

我预计https://本地主机应该值得信赖。 但我发现了错误信息;

$ Specify --help for a list of available options and commands.

似乎命令“dotnet dev-certs https”没有 --trust 选项。 如何解决这个问题?


在 Ubuntu 上standard机制是:

  • dotnet dev-certs https -v生成自签名证书
  • 使用以下命令将 ~/.dotnet/corefx/cryptography/x509stores/my 中生成的证书从 pfx 转换为 pemopenssl pkcs12 -in <certname>.pfx -nokeys -out localhost.crt -nodes
  • copy localhost.crt to /usr/local/share/ca-certificates
  • 使用信任证书sudo update-ca-certificates
  • 验证证书是否已复制到/etc/ssl/certs/localhost.pem(扩展名更改)
  • 使用验证它是否可信openssl verify localhost.crt

不幸的是,这不起作用:

  • dotnet dev-certs https生成受上述问题影响的证书https://github.com/openssl/openssl/issues/1418 and https://github.com/dotnet/aspnetcore/issues/7246:
$ openssl verify localhost.crt
CN = localhost
error 20 at 0 depth lookup: unable to get local issuer certificate
error localhost.crt: verification failed
  • 由于 dotnet 客户端不可能信任该证书

解决方法:(在 Openssl 1.1.1c 上测试)

  1. 手动生成自签名证书
  2. 信任这个证书
  3. 强制您的应用程序使用此证书

详细地:

  1. 手动生成自签名证书:

    • 创建包含以下内容的 localhost.conf 文件:
[req]
default_bits       = 2048
default_keyfile    = localhost.key
distinguished_name = req_distinguished_name
req_extensions     = req_ext
x509_extensions    = v3_ca

[req_distinguished_name]
commonName                  = Common Name (e.g. server FQDN or YOUR name)
commonName_default          = localhost
commonName_max              = 64

[req_ext]
subjectAltName = @alt_names

[v3_ca]
subjectAltName = @alt_names
basicConstraints = critical, CA:false
keyUsage = keyCertSign, cRLSign, digitalSignature,keyEncipherment

[alt_names]
DNS.1   = localhost
DNS.2   = 127.0.0.1
  • 使用生成证书openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout localhost.key -out localhost.crt -config localhost.conf
  • 使用将 cert 转换为 pfxopenssl pkcs12 -export -out localhost.pfx -inkey localhost.key -in localhost.crt
  • (可选)使用验证证书openssl verify -CAfile localhost.crt localhost.crt这应该产生localhost.crt: OK
  • 因为它尚未被信任使用openssl verify localhost.crt应该失败
CN = localhost
error 18 at 0 depth lookup: self signed certificate
error localhost.crt: verification failed
  1. 信任这个证书:

    • 将 localhost.crt 复制到/usr/local/share/ca-certificates
    • 使用信任证书sudo update-ca-certificates
    • 验证证书是否已复制到/etc/ssl/certs/localhost.pem(扩展名更改)
    • 现在应该可以在没有 CAfile 选项的情况下验证证书
$ openssl verify localhost.crt 
localhost.crt: OK
  1. 强制您的应用程序使用此证书

    • 使用以下设置更新您的 appsettings.json:
"Kestrel": {
  "Certificates": {
    "Default": {
      "Path": "localhost.pfx",
      "Password": ""
    }
  }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何运行“dotnet dev-certs https --trust”? 的相关文章

随机推荐

  • Facebook API:所有朋友共享的所有链接?

    访问所有用户 Facebook 好友共享的链接的最实用方法是什么 我希望抓取由经过身份验证的用户的朋友共享的少数域的所有链接 有没有办法询问 域 X 的所有链接 所有链接 我将过滤域 X 或者我是否需要获取每个朋友并解析每个单独的提要 我假
  • T-SQL 读取带有命名空间的 xml 文件

    我尝试读取 sql server 中的 xml 文件 DECLARE XMLToParse XML Load the XML data in to a variable to work with This would typically b
  • TypeScript 2:非类型化 npm 模块的自定义类型

    尝试后发布的建议其他地方 我发现自己无法运行使用非类型化 NPM 模块的打字稿项目 下面是一个最小的示例和我尝试的步骤 对于这个最小的例子 我们假设lodash没有现有的类型定义 因此 我们将忽略该包 types lodash并尝试手动添加
  • 如何更改powershell控制台中的光标位置

    我目前将当前的 CursorPosition 分配给 Powershell 中的一个变量 以便在脚本中执行倒计时时可以覆盖相同的空间 如下所示 errorPos host UI RawUI CursorPosition for i 5 i
  • 在 Core Data 应用程序中更新 NSTableView 的正确方法

    我有一个带有 NSTableView 的核心数据项目 其中列绑定到 NSArrayController 反过来 控制器的内容绑定到 AppDelegate 的主要托管对象上下文 我对 NSTextFieldCell 进行了子类化 以提供更定
  • 访问和操作环境对象中的数组项

    我有一个EnvironmentObject我用来生成一个列表 class ActivityViewModel ObservableObject Published var Activities Activity init self Acti
  • Tableview的Plist搜索

    I have Plist它已填充在带有扩展部分的表格视图上 现在我想搜索表格 下面的图像中 您可以看到当我搜索任何内容时发生的情况 只是因为我正在搜索它 但需要对 cellforrowatindexpath 进行一些更改以获取搜索结果 请检
  • 在Java中按键排序HashMap的最佳方法?

    这是我第一次必须订购HashMap在爪哇 我需要按键执行此操作 但在我的情况下 键是一个对象 因此我需要按特定字段进行排序 尝试自己解决这个问题 我考虑继续编写这个简单的代码 private HashMap
  • 以 Map 作为主体的 Dart HTTP POST

    飞镖http包 s post方法只接受一个String a List
  • 同步期间出错:管道损坏 - 更新 Android Studio 3.2、3.3 后

    将 Android Studio 更新到 3 2 并解决同步 gradle 问题后Gradle 同步失败 将 Android Studio 更新到 3 2 后 我无法安装apk 事件日志 Error during Sync Broken p
  • 如何检索 WiFi Direct MAC 地址?

    我正在尝试检索 Android 设备的 MAC 地址 如果 WiFi 已打开 这通常可以通过 WiFiManager API 实现 如果 WiFi 关闭且 WiFi Direct 打开 有什么方法可以获取 MAC 地址吗 我的手机上无法同时
  • 如何将多个Excel文件合并为一个Excel文件

    所以我试图制作一个 Excel 表格聚合器 在我的工作中 有人向我们发送一堆单独的 Excel 文件 这些文件都是相关的 每个文件只使用了一张纸 我在某种程度上遵循上一篇文章的想法 但这样做后 我复制的一些 Excel 工作表变成了空白 只
  • 我可以创建宽度为百分比高度但像素精确的行高的 HTML 表格吗?

    我需要在网页上创建一个有两行的表 该表格需要填充整个页面 因此我在 CSS 样式表中将表格的高度和宽度设置为 100 并将 HTML 和正文的高度也设置为 100 但是 我需要将表格顶行的高度精确为 100 像素 并扩展第二行以适合表格的其
  • 在模板化嵌套和继承类中未检测到变量

    我有一个像这样的嵌套和继承的结构 template
  • 仅使用给定符号创建固定长度的唯一 ID?

    我试图了解如何在 python 中创建一组固定长度 例如长度 12 的唯一 ID 它使用所有字母数字字符的特定子集 这里的用例是这些 ID 需要被人们读取并在打印文档中引用 因此我试图避免使用字符 L I O 和数字 0 1 我当然需要能够
  • AWS Route 53 - 到应用程序负载均衡器不同端​​口的域名路由

    我们正在AWS中实施微服务架构 我们有几个 EC2 实例 它们将微服务部署在不同的端口上 我们还有一个面向互联网的应用程序负载均衡器 它根据端口路由到不同的服务 eg xxxx xx xx elb amazonaws com 8080 go
  • 使用 Iron-Router 模板内的上下文

    我无法理解exactlyMeteor 使用 Iron Router 调用的模板中的上下文可用作我的上下文 以及这些内容如何继承 以下是我能想到的 我可以在双花括号内引用的内容 的所有潜在来源 内置助手 Handlebars register
  • https 与使用 Cloudfront 签名的 url

    我知道这是一个苹果和橘子的问题 但我想了解使用 https 和 AWS Cloudfront 签名 URL 的优缺点 人们可以评论并添加到这个列表中吗 HTTPS PROS 安全性 https 比 http 更安全 不过 我不确定这意味着什
  • 使用 SCons 管理 Python 3 代码

    在工作中 我的任务是将 Python 2 7 代码的大型库转换为 Python 3 x 该库包含许多使用 boost python for C 制作的脚本和扩展 所有这些都是用 SCons 构建的 它不能与 Python 3 x 解释器一起
  • 如何运行“dotnet dev-certs https --trust”?

    我是 ASP NET 新手 环境 乌班图18 04 视觉工作室代码 NET SDK 2 2 105 我在运行某些命令时遇到麻烦 我正在阅读教程 并运行这个命令 dotnet dev certs https trust 我预计https 本地