我必须将 Nginx 配置为接受客户端自签名证书。 问题是证书应该由客户自己准备并由他们签署。我知道这种方法的缺点,但这是客户要求。 目前 Nginx 配置为接受由我自己的 CA(不受信任)签署的客户端证书。 ssl_client_certificate 指向 ca.crt。 客户想要大约 100 个客户端证书,每个证书都由不同的不受信任的 CA 签名——没有链接。 我应该如何配置 Nginx 以这种方式工作?我相信我应该准备包含每个客户端证书、CA 证书的文件。还要别的吗?
最佳答案
你为什么不使用CACert ?这样每个客户端都可以生成他们的证书(比自己生成证书更容易),并且您在 ssl_client_certificate
中只持有一个 CA。
否则,您必须将所有 CA 连接到为 ssl_client_certificate
指出的文件中。
或者,您可以为每个用户颁发您的 CA 中间 CA(然后每个用户生成他们的证书),并且您只在 ssl_client_certificate
中使用您的 CA,并指定正确的 ssl_verify_depth
:
ssl_verify_client on; # or optional
ssl_verify_depth 2; # >1, depending on your CA chain
关于authentication - Nginx客户端证书授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30809280/