共用方式為


手動驗證安全通道認證

根據預設,Schannel 會呼叫WinVerifyTrust函式來驗證伺服器憑證;不過,如果您已使用 ISC_REQ_MANUAL_CRED_VALIDATION 旗標停用此功能,則必須驗證嘗試建立其身分識別的伺服器所提供的憑證。

若要手動驗證伺服器憑證,您必須先取得它。 使用 QueryCoNtextAttributes (General) 函式,並指定SECPKG_ATTR_REMOTE_CERT_CONTEXT屬性值。 這個屬性會傳回具有伺服器所提供憑證鏈 結的CERT_CONTEXT 結構。 此憑證鏈結包含分葉憑證。 它稱為分葉憑證,因為它是憑證鏈結中的最後一個憑證,而且最遠于 根憑證。 SSPI 內容緩衝區中的憑證排序並不表示任何憑證鏈結關聯性。

使用分葉憑證,您必須驗證下列專案:

  • 憑證鏈結已完成,且根憑證是來自受信任 憑證授權單位單位 的憑證, (CA) 。
  • 目前時間不超出憑證鏈結中每個憑證的開始和結束日期。
  • 憑證鏈結中沒有任何憑證已撤銷。
  • 分葉憑證的深度不大於憑證延伸模組中指定的允許深度上限。 只有在指定深度時,才需要這項檢查。
  • 憑證的使用方式正確,例如,用戶端 憑證 不應該用來驗證服務器。
  • 針對伺服器驗證,伺服器分葉憑證中包含的伺服器識別符合用戶端嘗試連絡的伺服器。 一般而言,用戶端會將憑證 [主體名稱] 欄位中的某些專案與伺服器的 IP 位址或 DNS 名稱相符。