#java #ssl #websphere-liberty
#java #ssl #websphere-liberty
Вопрос:
Я использую https://github.com/TooTallNate/Java-WebSocket для моей связи с сокетом в моем приложении веб-сервера.
Я хочу настроить взаимную аутентификацию в своей службе. Я установил хранилище ключей и хранилище доверия в своем серверном и клиентском приложении. Чего я не могу понять, так это нужно ли мне изменять код для выполнения 2-сторонней аутентификации? Прямо сейчас я могу подтвердить, что связь происходит по защищенному каналу. Есть ли способ проверить, что 2 way SSL authentication (mutual authentication)
это происходит? Я запускаю свою службу на Websphere Liberty
Источник для SSL-связи в Java websockets: https://github.com/TooTallNate/Java-WebSocket/blob/Java-WebSocket-1.3.0/src/main/java/org/java_websocket/SSLSocketChannel2.java
Я вижу, что в Liberty я могу запросить сертификат на стороне клиента https://www.ibm.com/support/knowledgecenter/SSEQTP_8.5.5/com.ibm.websphere.wlp.doc/ae/twlp_sec_clientcert.html Однако почему мне нужно добавить сертификат в мой браузер? Разве я не должен добавлять сертификат на стороне клиента в хранилище доверия моего сервера?
Ответ №1:
Чтобы включить аутентификацию клиента или взаимную аутентификацию, вам необходимо включить clientAuthentication=»true», как указано в примере ниже на Liberty.
<ssl id="myDefaultSSLConfig"
keyStoreRef="defaultKeyStore"
trustStoreRef="defaultTrustStore"
clientAuthentication="true"
sslProtocol="TLS" />
Как упоминалось в приведенной выше ссылке, браузеру необходимо либо добавить, либо принять сертификат сервера, а также сервер должен иметь сертификат подписавшего клиента. Для работы взаимного обмена данными между клиентом и сервером должно быть установлено доверие.
По ссылке выше: https://www.ibm.com/support/knowledgecenter/SSEQTP_8.5.5/com.ibm.websphere.wlp.doc/ae/twlp_sec_clientcert.html
- Добавьте сертификат клиента в свой браузер. См. Документацию вашего браузера для добавления клиентских сертификатов.
- Убедитесь, что сервер доверяет всем используемым клиентским сертификатам.