2016-12-28 87 views
1

我有一個可以偵聽多個rsyslog客戶端的啓用了SSL的tcp服務器。每個客戶端都有自己的證書,該證書被添加到服務器的信任庫中。這個設置工作正常。問題是,在套接字接受連接之後,是否有辦法獲取CN,位置等客戶端證書信息?JAVA SSL:如何獲取客戶端證書信息

下面是簡單tcp服務器的代碼示例。

SSLServerSocketFactory sf = (SSLServerSocketFactory) SSLServerSocketFactory.getDefault(); 
ServerSocket ss = sf.createServerSocket(514); 
while(true){ 
    SSLSocket s = (SSL)ss.accept();   
    // here I need to get client certificate information 

} 

回答

0

您需要的SSLServerSocket配置需要或希望客戶端身份驗證,這取決於這些應用。然後,如果發送它們,您可以從SSLSocket's SSLSession中獲得對等證書。