AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1014664
Accepted
Anton Krouglov
Anton Krouglov
Asked: 2020-04-29 09:51:52 +0800 CST2020-04-29 09:51:52 +0800 CST 2020-04-29 09:51:52 +0800 CST

如何解决被 GP 破坏的 IIS10 客户端证书安全问题?

  • 772

我有一个奇怪的情况。我的 Win 2016 服务器被 AD 组策略破坏了。

在 X 时刻自动 AD 组策略更新后,IIS 10 开始抛出 403 错误。事先远程方通过带有客户端证书的 https 毫无问题地呼叫我们。

我在 X 时刻之前和 X 时刻之后都有备份,但我无法确定 AD GP 更改的设置。

我有一份设置文件,其中包含从头开始设置我们的 Web 服务所需的所有设置。我已经根据受害者服务器检查了它们。没有改变。在每个级别启用匿名身份验证并启用 SSL 设置-> 客户端证书-> 接受。

我们的管理员发誓他们没有改变任何东西。IIS 日志在 X 时刻之后什么也没有显示。

任何想法在哪里看?注册表?元数据库?

根据 SOAP e2e 跟踪日志返回给调用者的确切错误:

The HTTP request was forbidden with client authentication scheme 'Anonymous'.[The remote server returned an error: (403) Forbidden.]
group-policy active-directory iis soap
  • 2 2 个回答
  • 557 Views

2 个回答

  • Voted
  1. twconnell
    2020-04-30T11:14:35+08:002020-04-30T11:14:35+08:00

    组策略和 IIS 服务器的一个常见问题是当 GPO 覆盖本地安全策略分配的用户权限并且 IIS 服务帐户无法登录时。如果发生这种情况,Windows 安全日志应该包含 IIS 服务器服务帐户的 EventId 4625 登录失败事件。

    您可以通过从 IIS 服务器运行 RSOP.MSC 并导航到计算机配置 > 策略 > Windows 设置 > 安全设置 > 本地策略 > 用户权限分配来快速验证任何 GPO 干扰

    查看源 GPO 列以确定哪个 GPO 正在应用设置。使用 gpedit.msc 查看/编辑本地组策略应用的设置。

    您可以使用本文来验证您的 IIS 服务器权限。从页面底部的“本地安全策略分配的 Windows 用户权限”表开始。

    请记住:只要 GPO 以受控方式进行测试和应用,它们就不是敌人。

    • 1
  2. Best Answer
    Anton Krouglov
    2020-05-20T09:24:07+08:002020-05-20T09:24:07+08:00

    简短的回答

    检查流氓证书。就我而言,受信任的根证书颁发机构证书存储中有一个非自签名证书。我们的管理员已将这个政府颁发的证书添加到整个森林(通过组策略),而没有事先进行适当的测试。

    细节

    我在这里放了一些一般性的故障排除指南,以帮助人们在 3 周内解决此类问题,就像我的情况一样。

    AD 组政策

    如果您不熟悉组策略,请使用以下命令获取人类可读的报告(最好由 IE 查看):

     GPRESULT /H C:\GPReport.html
    

    要查看更多详细信息,请RSOP.MSC按照@twconnell推荐使用。RSOP.MSC 显示应用的本地和组策略的有效快照。验证安全性Computer Configuration > Windows Settings > Security Settings > Local Policies > User Rights Assignment。就我而言,我已经彻底阅读了这个优秀的SO 答案,并关注了那里的每个链接。然后我检查了每个文件、文件夹和应用程序池的访问权限。那里没有任何问题。

    IIS 日志

    查看 IIS 日志。应该有更多的细节,而不仅仅是403提供给客户的代码。就我而言,那里有403 16代码。

    查看此故障排除指南。就我而言,它很短:Client certificate is untrusted or invalid

    证书吊销列表 (CRL)

    我的证书 CA 是 AD 提供的公司 CA,所以我最初认为证书吊销列表 (CRL) 可能存在问题。最好的实用指南就是这个。要了解更多细节,请阅读此,此,最后是此怪物。就我而言,CRL 没有问题,因为我事先遵循了 this、this和this指南。结果:

        netsh http 显示 sslcert ipport=0.0.0.0:443
        ...
        验证客户端证书吊销:已禁用
        仅使用缓存的客户端证书验证吊销:已禁用
        使用检查:禁用
        撤销新鲜时间:0
        URL 检索超时:0
        Ctl 标识符:(空)
        Ctl 商店名称:(空)
        DS 映射器用法:已禁用
        协商客户端证书:已启用
        ...

    SSL 调试

    从客户端调试 SSL 使用openssl工具(假设 myserver 使用通用 443 端口进行 https):

     openssl s_client -connect myserver:443
    

    在我的情况下acceptable CAs for client certificates,最初是空的,所以我将HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\SendTrustedIssuerList DWORD 值设置为 1 并按照本指南(接近底部)重新启动服务器。请注意,客户端证书 IIS 问题的可接受 CA 的空列表也可能发生,因为根据这个 SF question的 CA 列表很大。

    acceptable CAs for client certificates当您在输出中有一个列表时,openssl您可以将其与服务器上配置的证书存储的内容进行比较。就我而言,那里只有一个证书属于Trusted Root Certification Authorities. 因此,经过几天的调查,我看到了这篇ms-support 文章 #2802568。实际上,一个放置不当的非自签名证书注定了整个身份验证链。

    结语

    引用@tylerl

    SSL 客户端身份验证是一团糟。这很好,因为它绝对安全,但它很糟糕,因为它很难设置和维护。除非您有充分的理由,否则请改用共享密钥身份验证(即“密码”)。您将节省时间和金钱。当安全性大大超过成本时,SSL 身份验证非常有用。

    • 0

相关问题

  • 如何删除本地管理员权限?

  • Windows 中的安装权限管理

  • 如何通过 GPO 授予漫游用户帐户在 Windows Server 2003 上的安装权限?

  • 如何在 Windows 2003 的 ou 级别应用策略

  • 什么是 ADM 模板?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve