8.5.6. 客户端证书查找


当红帽单点登录服务器收到直接 HTTP 请求时,JBoss EAP undertow 子系统建立 SSL 握手并提取客户端证书。JBoss EAP 将客户端证书保存到 HTTP 请求的 javax.servlet.request.X509Certificate 属性,如 servlet 规范中所述。Red Hat Single Sign-On X509 验证器可以从此属性中查找证书。

但是,当 Red Hat Single Sign-On 服务器监听负载均衡器或反向代理后面的 HTTP 请求时,代理服务器可以提取客户端证书并建立相互 SSL 连接。反向代理通常将经过身份验证的客户端证书放在底层请求的 HTTP 标头中。代理将请求转发到后端 Red Hat Single Sign-On 服务器。在这种情况下,Red Hat Single Sign-On 必须从 HTTP 标头而不是 HTTP 请求的属性中查找 X.509 证书链。

如果 Red Hat Single Sign-On 位于反向代理后,您通常需要在 RHSSO_HOME/standalone/configuration/standalone.xml 中配置 x509cert-lookup SPI 的替代供应商。当 默认 供应商查找 HTTP 标头证书时,存在两个其他内置供应商: haproxyapache

8.5.6.1. HAProxy 证书查找供应商

当 Red Hat Single Sign-On 服务器位于 HAProxy 反向代理后面时,您可以使用此供应商。为您的服务器使用以下配置:

<spi name="x509cert-lookup">
    <default-provider>haproxy</default-provider>
    <provider name="haproxy" enabled="true">
        <properties>
            <property name="sslClientCert" value="SSL_CLIENT_CERT"/>
            <property name="sslCertChainPrefix" value="CERT_CHAIN"/>
            <property name="certificateChainLength" value="10"/>
        </properties>
    </provider>
</spi>
Copy to Clipboard Toggle word wrap

在本示例配置中,客户端证书是从 HTTP 标头、SSL_CLIENT_CERT 以及其链中其他证书中查找,如 CERT_CHAIN_0CERT_CHAIN_9。属性 certificateChainLength 是链的最大长度,因此最后一个属性是 CERT_CHAIN_9

有关为客户端证书和客户端证书链配置 HTTP 标头的详细信息,请参阅 HAProxy 文档。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat