我在我的本地IIS服务器上部署了ASP.NET Angular SPA模板RC2应用程序(带有Identity Server选项)。我遇到以下异常。IIS无法访问我的本地证书信息。
Application: w3wp.exe
CoreCLR Version: 6.0.21.52210
.NET Version: 6.0.0
Description: The process was terminated due to an unhandled exception.
Exception Info: System.InvalidOperationException: Couldn't find a valid certificate with subject 'CN=my-subdomain.azurewebsites.net' on the 'CurrentUser\My'
at Microsoft.AspNetCore.ApiAuthorization.IdentityServer.SigningKeysLoader.LoadFromStoreCert(String subject, String storeName, StoreLocation storeLocation, DateTimeOffset currentTime)
at Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ConfigureSigningCredentials.LoadKey()
at Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ConfigureSigningCredentials.Configure(ApiAuthorizationOptions options)
at Microsoft.Extensions.Options.OptionsFactory`1.Create(String name)
at Microsoft.Extensions.Options.UnnamedOptionsManager`1.get_Value()
at Microsoft.Extensions.DependencyInjection.IdentityServerBuilderConfigurationExtensions.<>c.<AddClients>b__8_1(IServiceProvider sp)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)
我通过以下方式创建证书
New-SelfSignedCertificate -DnsName "my-subdomain.azurewebsites.net" -CertStoreLocation "cert:\CurrentUser\My"
我将我的appsettings.json设置为
"IdentityServer": {
"Key": {
"Type": "Store",
"StoreName": "My",
"StoreLocation": "CurrentUser",
"Name": "CN=my-subdomain.azurewebsites.net"
},
"Clients": {
"MarketPlace": {
"Profile": "IdentityServerSPA"
}
}
当我使用与文件夹发布相同的配置发布此网站时,它可以正常工作。如何修复IIS错误,以便它可以访问证书?
1条答案
按热度按时间sdnqo3pr1#
我有一个类似的问题与.NetCore Web API(.NetCore 5.0)实现使用清洁架构(CQRS模式),我需要2个证书来运行我的应用程序。
1.自签名用于应用程序级别内的通信,例如,与其他服务/类库服务的通信,或者可能与数据库的通信。(对于内部通信,应用程序将查找在域级别或服务器级别创建的证书)
因此,在应用程序设置生产JSON中,我们需要指向自签名证书,而在IIS中的应用程序中发布时,我们需要从“编辑绑定”屏幕的SSL证书下拉列表中选择CA颁发的证书。
第1点:CA颁发证书应导入IIS。第2点:而自签名应出现在MMC、个人或root或web托管中,在本地机器或当前用户中,应在应用设置生产JSON中引用。
干净的架构:https://github.com/jasontaylordev/CleanArchitecture