Вопрос

Пока я был знаком с HTTPS и концепцией SSL, я недавно начал некоторое развитие и обнаружил, что я немного запутался.

Требование было то, что я пишу небольшое приложение Java, которое работает на машине, прикрепленной к сканеру. Когда документ отсканирован, это подбирается и файл (обычно PDF) отправлен через Интернет на наш сервер приложений, который затем обработает его. Я написал приложение, используя библиотеки Apache Commons и httpClient.

Второе требование было подключение по SSL, требуя сертификата. Следующее руководство на странице httpClient i использую authsslprotocolsocketFactory с страницы вклада.

Конструктор может принять клавиш-магазин, пароль ключевого магазина, Truststore и Truststore Password. В качестве первоначального теста наш DBA включил SSL на одном из наших веб-серверов разработки и предоставил мне файл .p12, который когда я импортирует в IE, позволяет мне успешно подключаться.

Я немного запутанный между Keystores и TrustStores и на каких шагах мне нужно взять с помощью keytool. Я попробовал импортировать P12 в файл клавишных магазинов, но получите ошибку:

keytool error: java.lang.Exception: Input not an X.509 certificate

Я последовал к предположению о том, чтобы импортировать P12 в Internet Explorer и экспортирую в качестве .Cer, который я могу успешно импортировать в ключ. Когда я предоставляю это в качестве аргументального аргумента authsslprotocorsocketOvactory authsSLProtocolsocketFactory, я получаю бессмысленное ошибочное ошибочное, но если я попробую его как Truststore, похоже, что это читает, но в конечном итоге я получаю

Caused by: javax.net.ssl.SSLHandshakeException: Received fatal alert: bad_certificate

Я не уверен, если бы я пропустил несколько шагов, я неправильно понимающую SSL и взаимную аутентификацию в целом или это неправильно конфигурация на стороне сервера.

Может ли кто-нибудь предоставить предложения или указать мне на ресурсы, которые могут помочь мне понять это, пожалуйста?

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

Решение

Клей-знак содержит ваши частные ключи и связанные с ними сертификаты. Truststore проводит сертификаты, которые вы доверяете, и поэтому можно использовать для строительства и проверки пути сертификата.

Вот некоторые ссылки, которые могут быть полезны:

java.lang.exception: ввод не сертификат X.509

Импортировать закрытый ключ и сертификат в магазин ключей Java

Настройка ключевых магазинов и TrustStores

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

Убедитесь, что ваш файл сертификата не имеет ничего до и после этого.

----- Начните сертификат ------

----- Конец сертификата -----

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