Кейстор, HTTPClient и HTTPS: Может ли кто-нибудь объяснить этот код для меня?

StackOverflow https://stackoverflow.com/questions/2741457

Вопрос

Я пытаюсь понять, что происходит в Этот код.

KeyStore trustStore  = KeyStore.getInstance(KeyStore.getDefaultType());        
FileInputStream instream = new FileInputStream(new File("my.keystore")); 
try {
    trustStore.load(instream, "nopassword".toCharArray());
} finally {
    instream.close();
}

SSLSocketFactory socketFactory = new SSLSocketFactory(trustStore);
Scheme sch = new Scheme("https", socketFactory, 443);
httpclient.getConnectionManager().getSchemeRegistry().register(sch);

Мои вопросы:

trustStore.load(instream, "nopassword".toCharArray()); делает то, что именно? От чтения документации load() Будут загружать данные о клавиатуре из входного потока (который является просто пустым файлом, который мы только что создали), используя некоторые произвольные «Nopassword». Почему бы просто не загрузить его с null В качестве параметра Inputstream и пустая строка в качестве поля пароля?

И тогда, что происходит, когда этот пустой клавиш пропускается в конструктор SSLSocketFactory? Какой результат такой операции?

Или это просто пример, где в реальном приложении вы должны на самом деле применить ссылку на существующий файл клавишных файлов / пароль?

Это было полезно?

Решение

Или это просто пример, где в реальном приложении вы должны на самом деле применить ссылку на существующий файл клавишных файлов / пароль?

Это действительно выглядит таким образом. Здесь нет "my.keystore" Файл распространяется в бинарных или исходных распределениях httpClient 4.0.1. Для этого запустится, вы создадите реальный ключ. Вы могли бы использовать либо keytool. или Oortecle..

Этот пример показывает вам, как использовать другой трастовый хранилище, чем тот, который использует JVM по умолчанию ($ Java_home / jre / lib / security / caqers) для этого экземпляра DefaultHttpClient. Отказ Это полезно, когда сайт SSL использует сертификат, подписанный своим собственным внутренним центр сертификации. Отказ Соединение SSL будет установлено только при распознавании подписителя сертификата сервера. Вход в Википедии на TLS. Это приличное введение, если вы не знакомы с концепцией.

Другие советы

Этот пример пытается показать вам, как загрузить свой собственный трастовый магазин. Чтобы получить этот пример работы, вам нужно иметь файл под названием «My.KeyStore» в вашем текущем каталоге, и пароль для ключевого магазина является «Nopassword».

Пожалуйста, обрати внимание new File("my.keystore") Не обязательно создает новый файл. Это просто создает объект файла, указывающий на путь.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top