由于 SSL 错误,IIS 无法连接到独立的 HTTPS Kestrel

IIS can't connect to standalone HTTPS Kestrel due to SSL error

我的 IIS 应用程序无法连接到我的独立 ASP.net 核心应用程序,因为我的 IIS 无法验证 ASP.net 核心的 SSL 证书。我对证书有非常基本的了解,但应用程序池似乎无法访问 ASP.net Core 使用的开发证书,该证书仅存储在当前用户中。这是问题的原因吗?如果是,我如何授予应用程序池访问证书的权限?有其他方法可以解决这个问题吗?

证书由 dotnet dev-cert 工具生成。

如果你是IIS 7以上,可以试试这个方法

1.Make 确保您的证书有私钥。

2.Import 将证书放入“本地计算机”帐户。最好使用证书 MMC。确保选中“允许导出私钥”

3.Based 其中,IIS 7.5 应用程序池的标识使用以下之一。

  • 打开 MMC => 添加证书(本地计算机)管理单元 => 证书 (本地计算机)=>个人=>证书=>右键单击 感兴趣的证书 => 所有任务 => 管理私钥 => 添加 IIS AppPool\AppPoolName 并授予它完全控制权。替换“AppPoolName” 使用您的应用程序池的名称(有时 IIS_IUSRS)

  • IIS 7.5 网站在 NETWORK SERVICE 下 运行。使用 证书 MMC,将“NETWORK SERVICE”添加到 Full Trust on “本地 Computer\Personal”中的证书。

  • IIS 7.5 网站在“MyIISUser”本地计算机用户下 运行 帐户。使用证书 MMC,添加了“MyIISUser”(一个新的本地 计算机用户帐户)对“本地”中的证书完全信任 Computer\Personal".

请注意,如果您在某个域中,您的域将在 'from location box' 中默认选中。确保将其更改为“本地计算机”。将位置更改为“本地计算机”以查看应用程序池标识。

引用如下:How to give ASP.NET access to a private key in a certificate in the certificate store?