检查哪个证书绑定到一个asp.net站点从站点内
我有一个IIS托管的asp.net(mvc/api等)应用程序在有限的上下文(例如应用程序池标识或类似)下运行。 环回不可用。 如何检查哪个证书绑定到从应用内托管我的应用的网站?检查哪个证书绑定到一个asp.net站点从站点内
E.g.当管理员在IIS中指定ssl绑定时。
回答:
想到使用Microsoft.Web.Administration API,您需要为AppPool身份提供对ApplicationHost.config文件的读取访问权限。
但是,即使该文件具有您的站点的绑定,也没有使用哪个证书的信息,因此API不起作用。
在命令行中,你可以这样做:
netsh http show
。
SSL Certificate bindings: IP:port : 0.0.0.0:443
Certificate Hash : aef3b8daaaabe075555534943c53f8727c32c96ef
Application ID : {4dc3e181-e14b-4a21-b022-59fc669b0914}
Certificate Store Name : My
要解析输出,您需要知道可以通过Microsoft.Web.Administration API获取的绑定。
证书哈希也是指纹,与您可以在PowerShell的详细信息:
Get-Item Cert:\LocalMachine\My\aef3b8daaaabe075555534943c53f8727c32c96ef| fl *
以标准用户使用时,这两个命令的工作,这可能意味着他们还根据程序池的身份工作?
我不确定要调用哪些API来获取此信息,最糟糕的情况是您可以尝试执行这些命令并解析其输出。
每天运行一个PowerShell脚本会更容易,并且会在每个站点中使用关于证书的信息创建一个文本文件。您的代码然后只是读取文件。
以上是 检查哪个证书绑定到一个asp.net站点从站点内 的全部内容, 来源链接: utcz.com/qa/265412.html