У меня есть рабочая демонстрация с апплетом, подключающимся к серверу («А») через https. Цепочка сертификатов сервера загружается апплетом через доверенное хранилище JKS (myTrustManagerFactory.init (mytrustStore.jks)). Он работает нормально.Доверие с сертификатами для нескольких хостов
Теперь мне нужен этот апплет для подключения к другому серверу («B») через https. Сертификат сервера подписывается самоподписанным ЦС. Поэтому мне нужно передать этот самозанятый CA в апплет TrustManagerFactory.
Можно ли разместить его в том же доверенности JKS, что и для сервера «А»? Если да, мне нужно сохранить этот самозаверяющий СА с помощью второго псевдонима? Я пробовал это, но получаю ошибки при подключении к серверу «B». Есть ли способ указать псевдоним сервера «B» для TrustManagerFactory?
Должен ли я использовать второй JKS или какой-либо SSL-контекст «перезагрузить» до вызова второго сервера?
Спасибо за вашу помощь,
Родольф
Какая ошибка возникает при подключении к серверу «B», если самозаверяющий сертификат B находится в том же доверенном магазине JKS? – Raghuram
Я получаю эту ошибку: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: Ошибка цепочки сертификатов \t at com.sun.net.ssl.internal.ssl.Alerts.getSSLException (Alerts.java: 174) \t at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal (SSLSocketImpl.java:1623) \t at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE (Handshaker.java: 198) \t at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE (Handshaker.java:192) \t at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate (ClientHandshaker.java: 1074) – Rodolphe