首页 > 解决方案 > 在 Kubernetes 上配置相互身份验证

问题描述

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

所以这就是问题所在

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

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

TIA

标签: sslkubernetesmutual-authentication

解决方案


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

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

RFC 5280,第 4.1.2.6 节说“主题名称可以在主题字段和/或 subjectAltName 扩展中携带”。这意味着必须根据证书的 SubjectAltName 扩展名和 Subject 属性(即它的公用名参数)检查域名。这两个地方相得益彰,而不是重复。SubjectAltName 是放置其他名称的合适位置,例如www.domain.com或 www2.domain.com

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


推荐阅读