检查哪个证书绑定到一个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

回到顶部