我有一個Netty HTTPS(SSL ENABLED) 客戶端,它與啟用相互身份驗證的服務器和未啟用相互身份驗證的服務器進行通信。
以下是我用來為客戶端設定 SSL 處理程式的代碼。
TrustManagerFactory tmf= ...// Necessary Trust certs
KeyManagerFactory kmf = ...// Necessary Client certs
SslContext sslContext = SslContextBuilder.forClient().keyManager(kmf).trustManager(tmf).build();
SslHandler sslHandler = sslContex.newHandler(ByteBuffAllocator);
sslHandler我在管道中使用上述內容。我知道keyManager(kmf)如果服務器請求,提供將向服務器提供客戶端證書。一切都按預期作業。
我的需要:我需要知道服務器是否在 SSL 握手程序中請求了客戶端證書(即是否啟用了相互驗證的服務器)。握手程序完成后我需要知道這一點。
uj5u.com熱心網友回復:
您可以提供自己的KeyManager實作(稍后呼叫實際的 KeyManager)。如果呼叫getPrivateKey(),您就知道服務器已請求客戶端證書。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/475918.html
上一篇:即使設定NODE_TLS_REJECT_UNAUTHORIZED=0,流星也會拋出“錯誤:證書已過期”錯誤
下一篇:CA證書的OpenSSL擴展
