0

在我们的服务器上,我们使用 haproxy 来检查客户端证书。我们通过结合 G1 和 EV 中间证书以及 G1 和 EV 根证书来构建一个 ca-bundle 文件。我们还有一个服务器证书,其中没有中间证书。

现在我们有一个问题。当用户使用客户端证书调用服务器时,它工作正常。但问题是当返回服务器证书时,该证书还包含中间证书和根证书。我们应该只返回带有中间证书而不是根证书的证书。

要启用 ssl,我们使用这个 haproxy 配置选项:

frontend https
    mode http
    bind *:443 accept-proxy ssl verify optional crt-ignore-err all crt <SERVER-CERT>.pem-key ca-file <COMBINDED-CERTS>.ca-bundle crl-file <CRL-FILE>.crl

    default_backend ssl-proxy

    # rest of the configuration

我们已尝试从 CA 包中删除根证书,这导致根证书未添加到服务器证书中,但从 CA 包中删除时,无法检查客户端证书。此选项不可用。

现在的问题是为什么会发生这种情况以及如何更改根证书不会添加到服务器证书中。

4

1 回答 1

0

我相信您正在寻找的是HAProxy 2.2ca-verify-file中引入的。

ca-验证文件

此设置指定一个 PEM 文件,从中加载用于验证客户端证书的 CA 证书。它指定不能包含在服务器问候消息中发送的 CA 名称中的 CA 证书。通常,“ca-file”必须用中间证书定义,“ca-verify-file”用证书来结束链,如根 CA。

于 2021-02-10T14:49:14.010 回答