在 ASP.NET Core 中有 4 種可用的證書模式:
// Summary:
// A client certificate is not required and will not be requested from clients.
NoCertificate,
// Summary:
// A client certificate will be requested; however, authentication will not fail
// if a certificate is not provided by the client.
AllowCertificate,
// Summary:
// A client certificate will be requested, and the client must provide a valid certificate
// for authentication to succeed.
RequireCertificate,
// Summary:
// A client certificate is not required and will not be requested from clients at
// the start of the connection. It may be requested by the application later.
DelayCertificate
我想使用DelayCertificate模式,因為這不應該在例如網路瀏覽器中向用戶要求證書,但我仍然可以在某些端點上要求證書。但我有一個考慮:在我看來,我曾經讀過 TLS 1.3 不支持延遲證書。我不確定,也找不到我讀到這篇文章的來源。那么這個模式怎么樣呢?它適用于 TLS 1.3 嗎?
uj5u.com熱心網友回復:
...我曾經讀過 TLS 1.3 不支持延遲證書
在 TLS 1.2 和更低版本中,重新協商用于在初始 TLS 握手完成后請求客戶端證書。TLS 1.3 中不再存在此機制,這意味著它也不能再用于 TLS 1.3 中的延遲客戶端證書。
但是,TLS 1.3 為此目的引入了一種不同的機制:握手后客戶端身份驗證。因此,延遲的客戶端證書仍然可以與 TLS 1.3 一起使用,只是有所不同。但它要求客戶支持它,并不是所有人都可以這樣做。
此外,在 HTTP/2 中明確禁止 TLS 1.3 握手后客戶端身份驗證 - 請參閱RFC 8740。但與 HTTP/2 中的 TLS 1.2 也不允許延遲客戶端證書以回應對受保護資源的訪問類似:RFC 7540明確禁止在實際 HTTP/2 協議(在 TLS 內部)啟動后重新協商。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/503752.html
