gpt4 book ai didi

asp.net - 如何运行 'dotnet dev-certs https --trust' ?

转载 作者:太空宇宙 更新时间:2023-11-03 16:50:00 30 4
gpt4 key购买 nike

我是 ASP.NET 的新手。

环境:

  • Ubuntu 18.04

  • Visual Studio 代码

  • .NET SDK 2.2.105

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

我正在阅读教程

https://learn.microsoft.com/ja-jp/aspnet/core/tutorials/razor-pages/razor-pages-start?view=aspnetcore-2.2&tabs=visual-studio-code

然后运行这个命令:

dotnet dev-certs https --trust

我希望 https://localhost应该被信任。但我发现了错误信息;

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

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

最佳答案

在 Ubuntu 上,标准机制是:

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

不幸的是,这不起作用:

$ 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 生成证书
  • 使用 openssl pkcs12 -export -out localhost.pfx -inkey localhost.key -in localhost.crt 将证书转换为 pfx
  • (可选)使用 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": ""
}
}
}

关于asp.net - 如何运行 'dotnet dev-certs https --trust' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55485511/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com