В настоящее время я тестирую воды SSL, и я новичок в SSL. В рамках моего исследования я натолкнулся на две разные реализации SSL в пространстве Java.
Во-первых, позвольте мне заявить о своем требовании, которое очень просто, мне просто нужен процесс для отправки данных на URL с использованием https.
Среди двух решений первое - это чистая реализация Java (с использованием только основных классов Java), а другое использует HTTP-клиент Apache, чтобы сделать его http.
Первоначально, как часть моего тестирования, я получал печально известное исключение "не удается найти действительный путь сертификации к запрошенной цели", и я понял, что это происходит, когда сертификат (полученный от сервера) не является частью Java магазин ключей. Когда я добавляю сертификат в хранилище ключей Java, приложение отлично работает в обоих случаях.
Однако в моем использовании HTTPClient я заметил использование SSLSocketFactory.
Когда я тестировал HttpClient со следующим кодом,
HttpClient httpClient = new HttpClient();
PostMethod postMethod = new PostMethod(target);
postMethod.setQueryString("someQueryString");
try {
httpClient.executeMethod(postMethod);
System.out.println("Response code: " + postMethod.getStatusLine());
BufferedReader in = new BufferedReader (new InputStreamReader(postMethod.getResponseBodyAsStream()));
String temp;
while ((temp = in.readLine()) != null){
response += temp + "\n";
}
temp = null;
in.close ();
System.out.println("Server response:\n'" + response + "'");
} catch (HttpException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{
postMethod.releaseConnection();
}
все работало нормально, поэтому я не уверен, в чем польза от реализаций SSLSocketFactory? Сначала я подумал, что это полезно, когда мы хотим автоматизировать добавление сертификата в хранилище ключей. Прав ли я в этом анализе?
Если мой анализ верен, какая реализация лучше?
- Лучше просто вручную установить сертификат? Каковы минусы этого подхода? и срок действия сертификата истечет? Если да, придется ли мне снова устанавливать новый сертификат?
- Или я должен автоматизировать всю функцию добавления хранилища ключей, используя SSLSocketFactory?
Ваш вклад будет принят с благодарностью. Спасибо.