我正在测试连接到 RADIUS 服务器的设备的 WLAN 功能。此 RADIUS 服务器位于装有 Raspbian Stretch 的 Raspberry Pi 上,并使用自由RADIUS 3.0和 Hostapd。
一些安全协议传输层协议测试用例检查如果发生什么情况长长的“信任链”被使用。我所说的长信任链是指由中间证书的长链。
现在,我面临的问题是,在某些测试用例中,FreeRADIUS 在其日志中返回特定错误:
SSL 显示错误 25:超出路径长度限制
其中一个测试用例如下所述:
RADIUS 证书文件:
- 证书:服务器证书-IM1-RootCA(由 RootCA 签名的 IM1 签名的公钥)
- 私钥:服务器密钥
- CA 证书:IM3 - IM2 - IM1 - RootCA 链(由 IM3、IM2、IM1 和 RootCA 组成的链)
客户端证书文件:
- 证书:客户端证书 - IM3 - IM2 - IM1 - RootCA(由 IM3 签名的 ClientCert,由 IM2 签名的 ClientCert,由 RootCA 签名的 IM1 签名的 ClientCert)
- 私钥:客户端密钥
- CA 证书:IM1——RootCA 链(由 IM1 和 RootCA 形成的链)
尝试使用此设置进行连接时,在客户端发送 Hello 后,RADIUS 服务器开始发送其 CA 证书链,而不是预期的服务器证书(使用 Wireshark 看到此情况)。它还会抛出错误 25。
现在的问题是:
错误“SSL 显示错误 25:超出路径长度限制”是什么意思?这与信任链的长度有关吗?
所描述的配置是否合法?
为什么服务器发送其 CA 证书链而不是服务器证书?
信任链中使用的中间体数量是否有限制?
答案1
错误“SSL 显示错误 25:超出路径长度限制”是什么意思?这与信任链的长度有关吗?
这指的是证书的 pathLenConstraint 扩展。通过此扩展,CA 可以限制可能的信任路径的深度。例如,CA 可能会颁发子 CA,但会对其进行限制,以便该 CA 不能颁发更多其他子 CA,而只能颁发叶证书。另请参阅证书基本约束的路径长度。
所描述的配置是否合法?
可能或可能不是,这取决于路径长度是否被限制为不允许此长度的信任路径。
为什么服务器发送其 CA 证书链而不是服务器证书?
服务器应发送其叶证书以及构建到受信任根 CA 的信任路径所需的中间证书。如果服务器仅发送链而不发送叶证书,则说明存在问题。但您可能没有注意到,服务器不仅发送链证书,还发送叶证书(应该是第一个)。
信任链中使用的中间体数量是否有限制?
如果 pathLenConstraint 中给出了一个限制,那么就有这样的限制。如果没有给出这样的限制,理论上就没有限制,但实际上 TLS 堆栈可能会不允许非常大的链。