在 Kubernetes 上配置相互认证

Configure Mutual Authentication on Kubernetes

我正在尝试在 Kubernetes 中实施相互身份验证,我能够创建证书并将其配置到集群中,但是当我从客户端发送证书时出现错误。

问题来了

创建证书时,我必须提供通用名称。该字段必须包含完全限定的域名。 由于我的域名很长93个字符,不允许我输入我的域名,

我的疑问是,生成证书时是否必须在 Common Name 字段中包含完整的域名,或者我们是否有任何解决方法。

TIA

您可以在 Subject Alternative Name 中提供完全限定域名 (FQDN) 而不是通用名称。主题备用名称没有 64 个字符的限制。

一般规则是根据所有 SAN 和通用名称检查域。如果在那里找到域,则证书可以连接。

RFC 5280, section 4.1.2.6 says "The subject name MAY be carried in the subject field and/or the subjectAltName extension". This means that the domain name must be checked against both SubjectAltName extension and Subject property (namely it's common name parameter) of the certificate. These two places complement each other, and not duplicate it. And SubjectAltName is a proper place to put additional names, such as www.domain.com 或 www2.domain.com

根据 2011 年发布的 RFC 6125,验证器必须首先检查 SAN,如果存在 SAN,则不应检查 CN。请注意,RFC 6125 相对较新,仍然存在颁发证书的证书和 CA,其中包括 CN 中的“主”域名和 SAN 中的备用域名。 IE。通过在存在 SAN 的情况下从验证中排除 CN,您可以拒绝一些其他有效的证书