我正在testing连接到RADIUS服务器的设备的WLANfunction。 此RADIUS服务器位于具有Raspbian Stretch的Raspberry Pi上,并使用FreeRADIUS 3.0和Hostapd。
一些EAP-TLStesting用例检查如果长时间使用“信任链”会发生什么情况。 长信任链是指由长链中间证书签名的公钥 。
现在,我面临的问题是,在一些testing案例中,FreeRADIUS在其日志中返回一个特定的错误:
SSL说错误25:超过了path长度限制
其中一个testing用例如下所述:
RADIUS证书文件:
客户端证书文件:
当试图连接这个设置时,在客户端发送Hello之后,RADIUS服务器开始发送它的CA证书链而不是期望的服务器证书(使用Wireshark来查看)。 它也会抛出错误25。
而现在的问题是:
什么错误“SSL说错误25:path长度约束超出”是什么意思,这是否与信任链的长度有关?
所描述的configuration是否合法?
为什么服务器发送CA证书链而不是服务器证书?
在信任链中使用的中间体数量是否有限制?
什么错误“SSL说错误25:path长度约束超出”是什么意思,这是否与信任链的长度有关?
这指的是证书的pathLenConstraint扩展。 通过这种扩展,CA可以限制可能的信任path的深度。 例如,一个CA可能会发出一个子CA,但限制它,使得这个不能发出更多的附加的子CA,但只有叶证书。 另请参见证书基本约束的path长度 。
所描述的configuration是否合法?
也许也许不是,取决于pathlen是否被限制为不允许这个长度的信任path。
为什么服务器发送CA证书链而不是服务器证书?
服务器应将其叶证书以及构build信任path所需的中间证书发送给受信任的根CA. 如果服务器只发送链而不是叶证书有什么错误。 但也许你没有注意到,服务器也发送叶证书(应该是第一个),而不是链证书。
在信任链中使用的中间体数量是否有限制?
如果有一个pathLenConstraint,那么就有这样的限制。 如果没有这样的限制,理论上没有限制,但实际上TLS堆栈可能不允许疯狂的大型链。