Ssl

FreeRADIUS 錯誤“SSL 說錯誤 25:超出路徑長度約束”是什麼意思?

  • September 18, 2017

我正在測試連接到 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。

現在的問題是:

  1. 錯誤“SSL 說錯誤 25:超出路徑長度約束”是什麼意思,這與信任鏈的長度有關嗎?
  2. 所描述的配置是否合法?
  3. 為什麼伺服器發送它的 CA 證書鏈而不是伺服器證書?
  4. 信任鏈中使用的中間體數量是否有限制?

錯誤“SSL 說錯誤 25:超出路徑長度約束”是什麼意思,這與信任鏈的長度有關嗎?

這指的是證書的 pathLenConstraint 擴展。通過這個擴展,CA 可以限制可能的信任路徑的深度。例如,一個 CA 可能會頒發一個子 CA,但會對其進行限制,這樣這個 CA 就不能頒發更多額外的子 CA,而只能頒發葉證書。另請參閱證書基本約束的路徑長度

所描述的配置是否合法?

可能會也可能不會,這取決於路徑 len 是否被限制為不允許此長度的信任路徑。

為什麼伺服器發送它的 CA 證書鏈而不是伺服器證書?

伺服器應發送其葉證書以及建構到受信任根 CA 的信任路徑所需的中間證書。如果伺服器只發送鏈而不發送葉證書,則出現問題。但也許您沒有註意到伺服器還發送葉證書(應該是第一個),而不僅僅是鏈證書。

信任鏈中使用的中間體數量是否有限制?

如果用 pathLenConstraint 給出了一個,那麼就有這樣的限制。如果沒有給出這樣的約束,理論上是沒有限制的,但實際上 TLS 堆棧可能不允許非常大的鏈。

引用自:https://serverfault.com/questions/874230