Я создал автономную исполняемую JAR-программу, которая должна отправлять личную информацию по SSL-соединению.
Мне не удалось установить SSL-соединение с использованием сертификатов. Был получаю это:Подключение SSL с использованием автономного приложения Java
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path `building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target`
Так что я нашел некоторый код где-то, что создает доверие менеджера, который не проверяет цепочки сертификатов:
// Create a trust manager that does not validate certificate chains
TrustManager[] trustAllCerts = new TrustManager[]{
new X509TrustManager() {
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
return null;
}
public void checkClientTrusted(
java.security.cert.X509Certificate[] certs, String authType) {
}
public void checkServerTrusted(
java.security.cert.X509Certificate[] certs, String authType) {
}
}
};
Это сделал трюк, и я был в состоянии установить SSL соединение без какого-либо сертификаты.
Я обеспокоен тем, что данные будут по-прежнему зашифрованы при обмене личной информацией. Это исполняемый файл JAR, который клиенты будут загружать на свои компьютеры.
Значит, действительно ли необходим этот сертификат?
Спасибо за ваш отзыв, очень полезно. Так как этот JAR будет загружен/установлен на клиентские компьютеры, я предполагаю, что есть способ загрузить сертификат и получить его в хранилище ключей. , поэтому сертификат необходимо загрузить и сохранить на компьютере клиента? Для этого мне нужно использовать собственный код для выполнения этой команды keytool на компьютере клиентов? – Marquinio
Нет, вам просто нужно выполнить keytool один раз на своем собственном компьютере, а затем доставить хранилище ключей (обычно файл ..jks) вместе с вашим приложением. Я уверен, что вы можете привязать хранилище ключей к файлу jar и ссылаться на него через путь к классам ... Извините, что реализация клиента ssl Java не так-то просто понять и требует некоторого чтения и выполнения с ним нормально ... – laher
Большое вам спасибо. Теперь у меня есть четкое представление о том, что я должен делать. – Marquinio