簡體   English   中英

如何停止握手和數據共享,如果服務器沒有在 python3 中以兩種方式 SSL 身份驗證請求客戶端證書?

[英]How to stop handshaking and data sharing, if the server does not REQUEST for client certificate in two way SSL authentication in python3?

我正在使用 pyhthon3 請求庫,並希望使用 HTTPS 從服務器請求一些資源。 因此,我使用兩種方式 SSL 身份驗證,並且我已以不請求客戶端證書以響應“客戶端 Hello”請求的方式配置服務器。

在此處輸入圖像描述

如您所見,IP xxx.xx.xxx.100是客戶端,IP xxx.xx.xxx.207是服務器。 因此,當客戶端向服務器發送“Client Hello”時,作為響應,服務器不會請求客戶端證書,即使它的兩種方式 SSL 身份驗證也是如此。

那么根據我的要求,在這種情況下如何立即停止握手和數據共享的過程? 或者如何強制服務器請求客戶端證書?

...即使它的兩種方式 SSL 身份驗證。

它不是。 僅僅因為客戶端有證書做相互認證,並不意味着這個證書被實際使用。 如果服務器實際使用CertificateRequest請求它(顯然沒有完成)並且客戶端然后提供請求的證書,則它只是相互身份驗證。

...在這種情況下,如何立即停止握手和數據共享過程?

你不能。 為此沒有 API。

而且我不確定這樣的要求會有什么樣的意義。 客戶端已成功驗證服務器,這應該是客戶端與服務器交換數據所需的全部。 相反,服務器可能想在發送特定數據之前知道客戶端是誰。 因此,從服務器的角度來看,在提供此類數據之前對客戶端進行身份驗證是有意義的,但從客戶端的角度來看則不然。 如果沒有人檢查您的駕駛執照,這就像您拒絕開車一樣。

或者如何強制服務器請求客戶端證書?

這完全取決於服務器的類型。 不同的服務器需要不同的配置。 例如 nginx 參見ssl_verify_client

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM