今天,我的托管服务提供商表示可以通过 HTTPS 访问 ASP.NET 应用程序,即使没有为 SSL 证书存储授予应用程序池标识(至少只读)权限。
为了简化某人的研究,我建议看一下 THIS链接
- IIS 7.5
- 项目使用DefaultApplicationPool
- Identity = ApplicationPoolIdentity
问题:托管服务提供商是否在伪造我?或者为了通过 ASP.NET 项目的 HTTPS 协议(protocol)访问网站资源,服务器必须已授予对该项目应用程序池的 ApplicationPoolIdentity 的访问权限?
备注:
不授予对以下内容的额外访问权限:IIS_IUSRS;Users 组、NETWORK SERVICE 和其他。只需保留默认“管理员组”即可。
最佳答案
简短的回答是:不,托管服务提供商没有冒充您。
服务器(IIS)必须有权访问相应SSL证书的私钥才能正确地与客户端建立SSL channel 。据我所知,IIS 服务器默认具有此权限(因为万维网发布服务在本地系统帐户下运行,并且此帐户默认具有访问本地机器存储的权限)。在 IIS 服务器之上,有应用程序池托管您的 asp.net 页面。
但是,如果您的网页出于某种原因需要访问本地机器存储中的证书(即它签署数据或向另一个需要客户端证书的 url 发出 Web 请求),那么应用程序池必须能够访问相应的私钥并且您必须使用 the guide 设置权限你发布的。
关于c# - IIS 7.5 asp.net 应用程序是否可以在 HTTPS 上运行,而不授予 ApplicationPool-Identity 对证书存储的读取权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22619600/