ClientCustomSSL с HTTP 4.1.1 - PullRequest
       39

ClientCustomSSL с HTTP 4.1.1

0 голосов
/ 02 июля 2011

Может кто-нибудь сказать мне, нужно ли нам создавать файл my.keystore или он будет создан. И когда я создал этот файл в том же каталоге (каталог веб-приложения), где находится мой файл JSP, и я использую этот код в моем файле JSP.

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);

И я получил ошибку

java.io.FileNotFoundException: my.keystore (The system cannot find the file spec
ified)

Так, где я должен поместить этот файл. это путь к файлу jsp и my.keystore

C:\workspace\search-ui\search-ui\src\main\webapp

Ответы [ 2 ]

0 голосов
/ 02 июля 2011

Вам не нужно хранилище ключей, если только ваш сервер не требует аутентификации клиента. Есть ли это?

0 голосов
/ 02 июля 2011

Я бы порекомендовал добавить хранилище ключей в classpath, а затем загрузить его через

InputStream instream = Thread.currentThread().getContextClassLoader().getResourceAsStream("my.keystore");

Помещение хранилища ключей в веб-приложение, но не в WEB-INF, небезопасно, поскольку любой может его просто загрузить. Кроме того, загрузка файла через new File() ищет в рабочем каталоге процесс Java, когда используется относительный путь к файлу (см. JavaDoc ). Скорее всего, это где-то в иерархии каталогов используемого вами контейнера сервлетов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...