我正在将 haproxy 设置为 API 前面的 SSL 终止器/负载平衡器,我们需要通过互联网向客户公开该 API。
计划是使用相互(双向)SSL/HTTPS 来验证双方身份,因为 API 本身无需进一步验证。除此之外,我们还将使用 IP 白名单。
现在客户已经给了我们一份双方都用于服务器和客户端证书的证书,该证书由“通用”CA(DigiCert)签名。虽然我理解从客户端的角度来看这是好的,因为证书也会与其访问的服务器的主机名进行比较,但反过来似乎并不那么安全(至少对于 haproxy 来说不是)
据我目前的理解,我必须使用“ca-file”指令告诉 HAProxy 信任由 Digicert 签名的证书,但是,没有办法告诉它除此之外它还需要是一个特定的客户端证书,因为我不想信任所有由 DigiCert 签名的客户端证书。
有没有办法用 HAProxy 做到这一点?如果没有,我想唯一的办法就是为双方制作自签名的客户端证书并交换它们(或者更确切地说,证书签名请求,并让另一方签名)。
或者我对整个客户端证书概念的理解是错误的?