FreeRADIUS错误“SSL说错误25:path长度限制超出”是什么意思?

我正在testing连接到RADIUS服务器的设备的WLANfunction。 此RADIUS服务器位于具有Raspbian Stretch的Raspberry Pi上,并使用FreeRADIUS 3.0和Hostapd。

一些EAP-TLStesting用例检查如果长时间使用“信任链”会发生什么情况。 长信任链是指由长链中间证书签名的公钥

现在,我面临的问题是,在一些testing案例中,FreeRADIUS在其日志中返回一个特定的错误:

SSL说错误25:超过了path长度限制

其中一个testing用例如下所述:

RADIUS证书文件:

  • 证书: ServerCert – IM1 – RootCA (由Root签名的由IM1签名的公钥)
  • 私钥: ServerKey
  • CA证书: IM3 – IM2 – IM1 – RootCA链 (由IM3,IM2,IM1和RootCA组成的链)

客户端证书文件:

  • 证书: ClientCert – IM3 – IM2 – IM1 – RootCA (ClientCert由IM3签名,由IM2签名,由IM签名
  • 私钥: ClientKey
  • CA证书: IM1 – RootCA链 (由IM1和RootCA组成的链)

当试图连接这个设置时,在客户端发送Hello之后,RADIUS服务器开始发送它的CA证书链而不是期望的服务器证书(使用Wireshark来查看)。 它也会抛出错误25。

而现在的问题是:

  1. 什么错误“SSL说错误25:path长度约束超出”是什么意思,这是否与信任链的长度有关?

  2. 所描述的configuration是否合法?

  3. 为什么服务器发送CA证书链而不是服务器证书?

  4. 在信任链中使用的中间体数量是否有限制?

什么错误“SSL说错误25:path长度约束超出”是什么意思,这是否与信任链的长度有关?

这指的是证书的pathLenConstraint扩展。 通过这种扩展,CA可以限制可能的信任path的深度。 例如,一个CA可能会发出一个子CA,但限制它,使得这个不能发出更多的附加的子CA,但只有叶证书。 另请参见证书基本约束的path长度 。

所描述的configuration是否合法?

也许也许不是,取决于pathlen是否被限制为不允许这个长度的信任path。

为什么服务器发送CA证书链而不是服务器证书?

服务器应将其叶证书以及构build信任path所需的中间证书发送给受信任的根CA. 如果服务器只发送链而不是叶证书有什么错误。 但也许你没有注意到,服务器也发送叶证书(应该是第一个),而不是链证书。

在信任链中使用的中间体数量是否有限制?

如果有一个pathLenConstraint,那么就有这样的限制。 如果没有这样的限制,理论上没有限制,但实际上TLS堆栈可能不允许疯狂的大型链。