gpt4 book ai didi

c# - 从站点内部检查哪个证书绑定(bind)到 asp.net 站点

转载 作者:太空宇宙 更新时间:2023-11-03 10:28:05 27 4
gpt4 key购买 nike

我有一个 IIS 托管的 asp.net(mvc/api 等)应用程序,它在有限的上下文(例如应用程序池标识或类似的)下运行。环回不可用。我如何从应用程序中检查哪个证书绑定(bind)到托管我的应用程序的站点?

例如当管理员在 IIS 中指定 ssl 绑定(bind)时。

最佳答案

使用 Microsoft.Web.Administration想到 API,您需要授予 AppPool 身份对 ApplicationHost.config 文件的读取访问权限。

然而,即使该文件具有您网站的绑定(bind),也没有使用哪个证书的信息,因此该 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 获得的绑定(bind)。

证书哈希也是指纹,通过它您可以在 PowerShell 中获得更多信息:

Get-Item Cert:\LocalMachine\My\aef3b8daaaabe075555534943c53f8727c32c96ef| fl *

这两个命令在作为标准用户使用时都有效,这可能意味着它们也可以在 AppPool 身份下工作?

我不确定要调用哪些 API 来获取此信息,在最坏的情况下,您可以尝试执行这些命令并解析它们的输出。

拥有每天运行的 PowerShell 脚本并在每个站点中创建一个包含证书信息的文本文件会容易得多。然后您的代码只读取文件。

关于c# - 从站点内部检查哪个证书绑定(bind)到 asp.net 站点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31099537/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com