2017-01-05 13 views
0

Что у меня есть:Websphere App сервера взаимного SSL - получить CN от проверки подлинности сертификата клиента

мне нужна взаимная проверка подлинности SSL, поэтому я иду к качеству защиты (QOP) настройки, и установить аутентификацию клиента = Обязательно. До этого момента все работает нормально.

Проблема в том, что моему EJB-приложению требуется общее имя сертификата клиента для получения идентификатора пользователя, который он будет использовать в бизнес-логике. И здесь я потерпел неудачу. Фрагмент кода (со стороны веб-службы):

 MessageContext context = wsContext.getMessageContext(); 
     HttpServletRequest req = (HttpServletRequest)context.get(MessageContext.SERVLET_REQUEST) ; 
     System.out.println("!! isSecure " + req.isSecure()); 

     X509Certificate[] certificates = (X509Certificate[]) req.getAttribute("java.servlet.request.X509Certificate"); 
     if (null != certificates && certificates.length > 0) { 
       ... 
     } else { 
      System.out.println("!! Empty certificates"); 
     } 

isSecure returnd верно, но я получаю "Пустые сертификаты" сообщение.

Мое предположение, возможно, причина в следующем. Когда я вывожу конфигурацию SSL, используемую на порте 9449, первая строка - «com.ibm.ssl.clientAuthenticationSupported = false», а через Консоль администратора она устанавливается как обязательная.

com.ibm.websphere.ssl.JSSEHelper jsseHelper = com.ibm.websphere.ssl.JSSEHelper.getInstance(); 
java.util.Properties props = jsseHelper.getProperties("WebServiceConfigure"); 
      System.out.println("!!! WebServiceConfigure = " + props.toString()); 
+0

У вас есть настройка ячейки (DMGR и узлы) или автономный сервер? В случае соты вы должны убедиться, что вы устанавливаете параметры QoP на соответствующем узле, где создан сервер. Если вы установите его на DMGR, эти настройки не будут применяться к другим серверам. –

+0

Я тестирую его автономно, но он перейдет к DMGR. Я буду помнить о ваших советах, спасибо. – Buch

ответ

1

Возможно, вы захотите попробовать свойства сертификата «прямого подключения». Это было создано для решения промежуточных (SSL-завершающих) прокси (например, веб-сервера с подключаемым модулем), выдавшего сертификат, отличный от конечного клиента. Это свойство

com.ibm.websphere.ssl.direct_connection_peer_certificates 

Вы можете определить, является ли вы получаете сертификат от прямых подключения сверстников или проксируемых сверстников через com.ibm.websphere.webcontainer.is_direct_connection.

См. Также: WAS 9 doc page.

+0

Спасибо, pglezen! сертификаты [0] .getSubjectDN(). GetName() возвращает мне CN = xxx, C = YY – Buch

 Смежные вопросы

  • Нет связанных вопросов^_^