Статус: Новичок
Группы: Участники
Зарегистрирован: 03.04.2012(UTC) Сообщений: 2
|
Добрый день. Сервер использует аутентификацию с помощью клиентских сертификатов. Я с помощью ControlPane сгенерировал ключ, отправил куда следует, полученный в ответ сертификат (бинарный файл с расширением "cer") добавил в хранилище сертификатов, путь к которому указываю в коде. При попытке подключения получаю ошибку BAD_CERTIFICATE, полный лог: Код:$ java -Djavax.net.debug=all HelloWorldApp
setting up default SSLSocketFactory
class ru.CryptoPro.ssl.SSLSocketFactoryImpl is loaded
Apr 3, 2012 2:33:10 PM ru.CryptoPro.ssl.SSLContextImpl d
INFO: defaultStoreProvider =
Apr 3, 2012 2:33:10 PM ru.CryptoPro.ssl.SSLContextImpl d
INFO:
Apr 3, 2012 2:33:10 PM ru.CryptoPro.JCP.tools.z a
INFO: Loading JCP 1.0.52
Apr 3, 2012 2:33:10 PM ru.CryptoPro.JCP.tools.z a
INFO: JCP loaded.
instantiated an instance of class ru.CryptoPro.ssl.SSLSocketFactoryImpl
Apr 3, 2012 2:33:12 PM ru.CryptoPro.ssl.d a
WARNING: %% No alias is match
javax.net.ssl.SSLHandshakeException: Received fatal alert: BAD_CERTIFICATE
at ru.CryptoPro.ssl.K.a(Unknown Source)
at ru.CryptoPro.ssl.K.a(Unknown Source)
at ru.CryptoPro.ssl.t.a(Unknown Source)
at ru.CryptoPro.ssl.t.i(Unknown Source)
at ru.CryptoPro.ssl.t.startHandshake(Unknown Source)
at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:440)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:153)
at HelloWorldApp.main(hello.java:34)
Код примитивный, по мотивам примеров: Код:import java.net.URL;
import java.net.URLConnection;
class HelloWorldApp {
// Пароль везде используется один.
private static final String secret = "secret";
private static final String remote_url = "https://a.b.c.d:port";
public static void main(String[] args) {
System.setProperty("javax.net.debug", "ssl");
// ключи лежат в /var/CPROcsp/keys/$USERNAME/second.000
System.setProperty("javax.net.ssl.keyStoreType", "HDImageStore");
System.setProperty("javax.net.ssl.keyStore", "second");
System.setProperty("javax.net.ssl.keyStorePassword", secret);
System.setProperty("javax.net.ssl.trustStoreType", "HDImageStore");
System.setProperty("javax.net.ssl.trustStore", "keys/CertStore");
System.setProperty("javax.net.ssl.trustStorePassword", secret);
try {
URL url = new URL(remote_url);
URLConnection connection = url.openConnection();
connection.setDoInput(true);
connection.setDoOutput(true);
connection.connect();
} catch (Exception e) {
e.printStackTrace();
}
}
}
Подскажите, пожалуйста, с чем может быть связана ошибка? Можно ли как-нибудь включить более детальный отладочный вывод?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,927 Откуда: Крипто-Про Сказал(а) «Спасибо»: 20 раз Поблагодарили: 691 раз в 652 постах
|
Здравствуйте. Проверьте с помощью консоли ControlPane <JRE_PATH>, действительно ли JCP видит ключевое хранилище. Возможно, ошибка из-за того, что вы поместили сертификат в хранилище CSP, а ключи берутся из хранилища JCP. Отредактировано пользователем 3 апреля 2012 г. 19:16:36(UTC)
| Причина: Не указана |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 03.04.2012(UTC) Сообщений: 2
|
Проверял, видит. Хранилище с помощью панель JCP и создавалось. Попробовал ключ, сгенерированный с помощью КриптоАРМ — дополнительно получаю сообщение "No appropriate keys for handshake", хотя пути, пароли и экспортные ограничения в порядке. Кажется уже всё перепробовал. Нет ли способов включения более подробной отладочной информации? (Например, какие ключи вообще найдены, даже если они не appropriate, итд.) Отредактировано пользователем 5 апреля 2012 г. 16:35:13(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,927 Откуда: Крипто-Про Сказал(а) «Спасибо»: 20 раз Поблагодарили: 691 раз в 652 постах
|
Для логирования попробуйте задать ru.CryptoPro.ssl.SSLLogger.level в logging.properties А пользовательский ключ генерировали с параметрами exchange key и client authentication? |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,927 Откуда: Крипто-Про Сказал(а) «Спасибо»: 20 раз Поблагодарили: 691 раз в 652 постах
|
Для логирования попробуйте задать ru.CryptoPro.ssl.SSLLogger.level в logging.properties А пользовательский ключ генерировали с параметрами exchange key и client authentication? |
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close