2016-12-28 2 views
1

У меня есть tcp-сервер с поддержкой SSL, который может прослушивать несколько клиентов rsyslog. Каждый клиент имеет свой собственный сертификат, который добавляется в доверительный магазин сервера. Эта настройка работает нормально. Вопрос: есть ли способ получить информацию о сертификате клиента, такую ​​как 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, если они были отправлены.