我正在尝试遵循this https://learn.microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel?view=aspnetcore-3.1文档中的“替换配置中的默认证书”,以便我可以为我使用 dotnet core 3.1 在 VS Code 中开发的 Web API 使用自签名证书(由于 Android 模拟器)。我似乎拿不到我想要的证书。我的密钥库中有两个:localhost(之前由 VS Code 创建)和development(我使用 openssl 创建的)
我已经创建了证书,它在钥匙串中列为“开发”。上面引用的文档说我们可以编辑 appsettings.json 或 appsettings.Development.json (这似乎是更好的选择)以包括:
"Certificates": {
"Default": {
"Path": "<path to .pfx file>",
"Password": "<certificate password>"
}
}
并将其用于密钥库:
"Default": {
"Subject": "<subject; required>",
"Store": "<cert store; required>",
"Location": "<location; defaults to CurrentUser>",
"AllowInvalid": "<true or false; defaults to false>"
}
我看过其他一些参考资料,例如.NET Core Kestrel 与 SSL http://www.philipermish.com/blog/how-to-use-ssl-with-dotnet-core-and-kestrel/这是一个很好的参考,但对于 2.0 来说。它确实有一些特定的值来帮助理解如何填写条目,但一些参数已经更改(例如源)。
"Certificates": {
"HTTPS": {
"Source": "Store",
"StoreLocation": "CurrentUser",
"StoreName": "My",
"Subject": "CN=localhost",
"AllowInvalid": true
}
}
我基本上用它作为新参数的指南,我将其包含为:
"Kestrel": {
"Certificates": {
"Default": {
"Subject": "CN=development",
"Store": "My",
"Location": "CurrentUser",
"AllowInvalid": true
}
}
}
我收到错误:
“在 CurrentUser/My 中找不到请求的证书 CN=development,AllowInvalid 设置为:True。”
我也尝试过:
"Kestrel": {
"Certificates": {
"Default": {
"Subject": "CN=localhost",
"Store": "My",
"Location": "CurrentUser",
"AllowInvalid": true
}
}
}