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 / 问题 / 1156675
Accepted
Janis Veinbergs
Janis Veinbergs
Asked: 2024-03-21 20:59:00 +0800 CST2024-03-21 20:59:00 +0800 CST 2024-03-21 20:59:00 +0800 CST

ADFS - 无法重新建立信任。似乎客户端证书身份验证不起作用。可能无法使用 TLS 客户端身份验证

  • 772

因此,我们将 ADFS 代理与 ADFS (Install-WebApplicationProxy) 连接,都是 Windows Server 2019。必须重新建立信任,但等待很长时间,正在重试身份验证

AD FS 事件日志

ADFS 端的事件 276 具有奇怪的值:

联合服务器代理无法向联合身份验证服务进行身份验证。用户操作 确保代理受到联合身份验证服务的信任。为此,请使用证书使用者名称中标识的主机名登录到代理计算机,并使用 Install-WebApplicationProxy cmdlet 在代理和联合身份验证服务之间重新建立信任。

附加数据

证书详情:

主题名称: 指纹:

不在时间之前:

不在时间之后:

代理每约 20 秒重试一次身份验证,就会发生很多此类事件。然而,Install-WebApplicationProxy 之后生成的第一个事件是 395:

使用帐户“example\administrator”成功建立联合服务器代理和联合身份验证服务之间的信任。

代理信任证书主题:CN=ADFS ProxyTrust - ADFSproxy。代理信任证书指纹:3F5DBD1C735A57C5FEA8C18905EE83CEAE3EA732 显然我的凭据是正确的,证书可以传递到 ADFS。我使用 certlm.msc 验证了它 - 证书位于 AdfsTrustedDevices 下

S频道日志

我在 ADFS 和 ADFS 代理上看到以下事件:

事件 36867:

创建 TLS 客户端凭据。

但是,对于 ADFS 代理,也存在警告,事件 ID 36857:

远程服务器已请求 TLS 客户端身份验证,但找不到合适的客户端证书。将尝试匿名连接。此 TLS 连接请求可能会成功或失败,具体取决于服务器的策略设置。

AD FS 跟踪

打开调试日志。

广告文件系统:

多个事件 107 错误:

ProxyRequestHandler.DefaultExceptionHandler:无法验证 ProxyTrust 的主题名称为“”和指纹“”的证书。

异常详细信息: 异常:未找到与请求关联的客户端证书。StackTrace:在 Microsoft.IdentityServer.Web.Proxy.TlsRequestVerificationMethod.VerifyTrustedRequest(WrappedHttpListenerContext 上下文,String&auditInformation) 在 Microsoft.IdentityServer.Web.Rest.RestRequestHandler.OnGetContext(WrappedHttpListenerContext 上下文)

检索代理配置时出错。Microsoft.IdentityServer.WebHost.Proxy.ProxyTrustException:找不到与请求关联的客户端证书。在 Microsoft.IdentityServer.Web.Proxy.TlsRequestVerificationMethod.VerifyTrustedRequest(WrappedHttpListenerContext 上下文,字符串&auditInformation) 在 Microsoft.IdentityServer.Web.Rest.RestRequestHandler.OnGetContext(WrappedHttpListenerContext 上下文)

TlsRequestVerificationMethod:传入请求不包含证书。

ADFS 代理。

事件 54:

Found certificate matching thumbprint '3F5DBD1C735A57C5FEA8C18905EE83CEAE3EA732'

事件 52 错误:

配置请求失败,状态:ProtocolError 消息:远程服务器返回错误:(401) 未经授权。异常:System.Net.WebException:远程服务器返回错误:(401)未经授权。在 System.Net.HttpWebRequest.GetResponse() 在 Microsoft.IdentityServer.Management.Proxy.StsConfigurationProvider.GetStsProxyConfiguration(X509Certificate2 trustCert)

随机尝试的事情

  • 禁用 TLS1.3(不是 2019 年的事情)https://jaapwesselius.com/2022/01/19/adfs-web-application-proxy-configuration-wizard-fails-with-trust-certificate-error/
  • 启用 TLS 1.0、1.1(之前仅配置了 1.2)
  • 缺少用于启用强加密的 .NET 注册表项。添加。+ 设置默认 TLS 1.2
  • 使用注册表将 winHTTP 默认协议设置为 TLS1.2
  • 在两台服务器上均获得最新的 CU 2024-03
  • 检查 adfsproxy 上生成的证书是否具有 adfssrv、appproxyctrl 和 appproxysvc 服务帐户的私钥读取权限。

总而言之,似乎证书已传递到 ADFS,但客户端身份验证失败。

我不太了解 ADFS 代理/Web 应用程序代理的内部结构 - 希望有人可以指导我如何进一步解决此问题。现在我们必须忍受一些停机时间:(

PS 如果有人建议重新建立信任 - 我正在尝试这样做。这些事件是作为该过程的一部分生成的。它失败并显示:尝试从联合服务器检索配置数据时发生错误。无法检索亲...

PPS 是否有某种配置阻止 AdfsTrustedDevices 中的证书用于客户端身份验证?PSADFS ProxyTrust - ADFSproxy证书没有任何增强的密钥用法 - 但我检查了其他正在运行的代理服务器,它也没有。它如何信任这个自签名证书?ADFS 是否隐式信任 AdfsTrustedDevices 中的自签名证书?

ssl
  • 1 1 个回答
  • 37 Views

1 个回答

  • Voted
  1. Best Answer
    Janis Veinbergs
    2024-03-26T22:48:43+08:002024-03-26T22:48:43+08:00

    因此,ADFS 似乎正在使用名为 SendTrustedIssuerList:管理受信任的颁发者进行客户端身份验证,并使用 AdfsTrustedDevices 来信任 adfs 代理服务器客户端身份验证证书。

    当需要使用 SSL 或 TLS 对客户端计算机进行身份验证时,可以将服务器配置为发送受信任的证书颁发者列表。此列表包含服务器将信任的一组证书颁发者,并提示客户端计算机在存在多个证书时选择哪个客户端证书。此外,客户端计算机发送到服务器的证书链必须根据配置的受信任颁发者列表进行验证。

    它无法信任该证书,因为我手动删除了绑定 hostnameport=adfs.example.com:443 并在不带参数的情况下重新添加sslctlstorename=AdfsTrustedDevices。

    我不得不:

    1. netsh http delete sslcert hostnameport=adfs.example.com:443
    2. netsh http add sslcert hostnameport=adfs.example.com:443 certhash=<thumb> appid={5d89a20c-beab-4389-9447-324788eb944a} certstorename=MY ccs=AdfsTrustedDevices

    经验教训:如果从 AD FS 管理控制台续订证书不会重新绑定证书,use netsh http update sslcert

    • 0

相关问题

  • 如何使用 Tomcat 5.5 更新 SSL 证书

  • 为 IIS6 自行生成 SSL 证书?

  • plesk 上的域和子域 ssl 访问

  • 如何设置 SSL 邮件服务器?

  • 如何通过 SVN 命令行接受 SSL 证书?

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