FreeRADIUS 錯誤“SSL 說錯誤 25:超出路徑長度約束”是什麼意思?
我正在測試連接到 RADIUS 伺服器的設備的 WLAN 功能。此 RADIUS 伺服器位於帶有 Raspbian Stretch 的 Raspberry Pi 上,並使用FreeRADIUS 3.0和 Hostapd。
一些EAP-TLS測試案例檢查如果使用長“信任鏈”會發生什麼。長鏈信任是指由長鏈中間證書籤名的公鑰。
現在,我面臨的問題是,在某些測試案例中,FreeRADIUS 在其日誌中返回特定錯誤:
SSL 顯示錯誤 25:超出路徑長度限制
下面描述了這些測試案例之一:
RADIUS 證書文件:
- 證書:ServerCert - IM1 - RootCA(由 IM1 簽名的公鑰由 RootCA 簽名)
- 私鑰:ServerKey
- CA 證書:IM3 - IM2 - IM1 - RootCA 鏈(由 IM3、IM2、IM1 和 RootCA 組成的鏈)
客戶端證書文件:
- 證書:ClientCert - IM3 - IM2 - IM1 - RootCA(ClientCert 由 IM3 簽名 由 IM2 簽名 由 IM1 簽名 由 RootCA 簽名
- 私鑰:ClientKey
- CA 證書:IM1 - RootCA 鏈(由 IM1 和 RootCA 形成的鏈)
嘗試使用此設置進行連接時,在客戶端發送 Hello 之後,RADIUS 伺服器開始發送其 CA 證書鏈而不是預期的伺服器證書(使用 Wireshark 看到了這一點)。它還會引發錯誤 25。
現在的問題是:
- 錯誤“SSL 說錯誤 25:超出路徑長度約束”是什麼意思,這與信任鏈的長度有關嗎?
- 所描述的配置是否合法?
- 為什麼伺服器發送它的 CA 證書鏈而不是伺服器證書?
- 信任鏈中使用的中間體數量是否有限制?
錯誤“SSL 說錯誤 25:超出路徑長度約束”是什麼意思,這與信任鏈的長度有關嗎?
這指的是證書的 pathLenConstraint 擴展。通過這個擴展,CA 可以限制可能的信任路徑的深度。例如,一個 CA 可能會頒發一個子 CA,但會對其進行限制,這樣這個 CA 就不能頒發更多額外的子 CA,而只能頒發葉證書。另請參閱證書基本約束的路徑長度。
所描述的配置是否合法?
可能會也可能不會,這取決於路徑 len 是否被限制為不允許此長度的信任路徑。
為什麼伺服器發送它的 CA 證書鏈而不是伺服器證書?
伺服器應發送其葉證書以及建構到受信任根 CA 的信任路徑所需的中間證書。如果伺服器只發送鏈而不發送葉證書,則出現問題。但也許您沒有註意到伺服器還發送葉證書(應該是第一個),而不僅僅是鏈證書。
信任鏈中使用的中間體數量是否有限制?
如果用 pathLenConstraint 給出了一個,那麼就有這樣的限制。如果沒有給出這樣的約束,理論上是沒有限制的,但實際上 TLS 堆棧可能不允許非常大的鏈。