NGINX Ingress 上的客户端 SubjectName 验证
Client SubjectName validation on NGINX Ingress
我正在尝试配置 NGINX 入口控制器,它还可以验证来自客户端的唯一 CN 或主题名称。原因是,我们只希望将客户端配置为访问 NGINX 入口控制器,并且可以删除使用相同 CA 和密钥签名的其余客户端。
Certificate:
Data:
Version: 1 (0x0)
Serial Number: 2 (0x2)
Signature Algorithm: sha256WithRSAEncryption
Issuer: CN=testAuthority
Validity
Not Before: Apr 5 08:02:23 2020 GMT
Not After : Apr 5 08:02:23 2021 GMT
Subject: CN=**client**
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (4096 bit)
Public Key Algorithm: rsaEncryption
Public-Key: (4096 bit)
Modulus:
<snipped>
Exponent: 65537 (0x10001)
Signature Algorithm: sha256WithRSAEncryption
<snipped>
-----BEGIN CERTIFICATE-----
<snipped>
-----END CERTIFICATE-----
如果从上述证书收到对 NGINX 控制器的请求,如 主题:CN 或证书密钥或指纹,则应将其转发到后端。
其余证书应被拒绝。
如果在 Ingress 中可以配置一些注解或配置映射,可能会有所帮助。
您可以尝试 and then deny access based on this variable via configuration snippet。一种可能的解决方法是使用额外的 Ingress 和专用 CA + 客户端证书身份验证,并仅向允许的客户端颁发客户端证书。
我正在尝试配置 NGINX 入口控制器,它还可以验证来自客户端的唯一 CN 或主题名称。原因是,我们只希望将客户端配置为访问 NGINX 入口控制器,并且可以删除使用相同 CA 和密钥签名的其余客户端。
Certificate:
Data:
Version: 1 (0x0)
Serial Number: 2 (0x2)
Signature Algorithm: sha256WithRSAEncryption
Issuer: CN=testAuthority
Validity
Not Before: Apr 5 08:02:23 2020 GMT
Not After : Apr 5 08:02:23 2021 GMT
Subject: CN=**client**
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (4096 bit)
Public Key Algorithm: rsaEncryption
Public-Key: (4096 bit)
Modulus:
<snipped>
Exponent: 65537 (0x10001)
Signature Algorithm: sha256WithRSAEncryption
<snipped>
-----BEGIN CERTIFICATE-----
<snipped>
-----END CERTIFICATE-----
如果从上述证书收到对 NGINX 控制器的请求,如 主题:CN 或证书密钥或指纹,则应将其转发到后端。 其余证书应被拒绝。
如果在 Ingress 中可以配置一些注解或配置映射,可能会有所帮助。
您可以尝试