Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

2 Страницы12>
Опции
К последнему сообщению К первому непрочитанному
Offline Бородина Надежда  
#1 Оставлено : 25 марта 2013 г. 15:17:53(UTC)
Бородина Надежда

Статус: Активный участник

Группы: Участники
Зарегистрирован: 25.03.2013(UTC)
Сообщений: 46
Российская Федерация
Откуда: Москва

Сказал(а) «Спасибо»: 1 раз
Добрый день!
Не получается установить соединение с сервером.
Клиент на Solaris.
JTLS и JCR установлены, сняты ограничения на длину ключей, новый корневой сертификат импортирован,
импортирован личный сертификат, создано хранилище ключей
Похоже контейнер и хранилище определяются, но сервер возвращает код 403
Может быть, кто-то сталкивался с такой проблемой, подскажите пожалуйста, в чем может быть причина.

Ниже фрагмент кода и лог.


sa = "https://сервер";
serverAddress = new URL(sa);
connection = null;
System.setProperty("javax.net.ssl.trustStoreType", "HDImageStore");
System.setProperty("javax.net.ssl.trustStore", "/путь/trust.store");
connection = (HttpsURLConnection)serverAddress.openConnection();

fp = "/путь";
FileInputStream fin = new FileInputStream(fp");
connection.setRequestMethod("POST");
connection.setDoInput(true);
connection.setDoOutput(true);
connection.setReadTimeout(10000);
connection.setUseCaches(false);
connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded; Charset=windows-1251");
connection.setRequestProperty("Content-Length", fin.available()) );
connection.connect();

DataOutputStream output = new DataOutputStream( connection.getOutputStream() );
int k;
do
{
k = fin.read();
if (k != -1) output.write(k);
}while (k != -1);

output.write(endBoundary.getBytes());

output.close();
fin.close();


file = new File("/путь");
if (!file.exists())
{ file.createNewFile(); }

fs = new FileOutputStream(file);
out = new BufferedOutputStream(fs);


int i;
while ((i = rd.read()) != -1)
{
out.write(i);
}
rd.close();
out.close();
fs.close();

connection.disconnect();


Mar 25, 2013 4:05:08 PM ru.CryptoPro.ssl.SSLContextImpl d
INFO: keyStore is :
Mar 25, 2013 4:05:08 PM ru.CryptoPro.ssl.SSLContextImpl d
INFO: keyStore type is :
Mar 25, 2013 4:05:08 PM ru.CryptoPro.ssl.SSLContextImpl d
INFO: keyStore provider is :
Mar 25, 2013 4:05:08 PM ru.CryptoPro.ssl.SSLContextImpl d
INFO: init keystore
Mar 25, 2013 4:05:08 PM ru.CryptoPro.ssl.SSLContextImpl d
INFO: defaultStoreProvider =
Mar 25, 2013 4:05:08 PM ru.CryptoPro.ssl.SSLContextImpl d
INFO:
Mar 25, 2013 4:05:08 PM ru.CryptoPro.JCP.tools.Starter check
INFO: Loading JCP 1.0.54 36707
Mar 25, 2013 4:05:08 PM ru.CryptoPro.JCP.tools.Starter check
INFO: JCP loaded.
Mar 25, 2013 4:05:08 PM ru.CryptoPro.ssl.SSLContextImpl d
INFO: init keymanager of type GostX509
Mar 25, 2013 4:05:08 PM ru.CryptoPro.ssl.n <init>
WARNING: %% No appropriate keys for handshake
PATH: /var/opt/cprocsp/keys/infa9
Mar 25, 2013 4:05:08 PM ru.CryptoPro.ssl.SSLContextImpl d
INFO: trustStore is: /inform/storage/infa_shared_dev/sh_scr/CMA/out/UCB/cert/trust.store
Mar 25, 2013 4:05:08 PM ru.CryptoPro.ssl.SSLContextImpl d
INFO: trustStore type is : HDImageStore
Mar 25, 2013 4:05:08 PM ru.CryptoPro.ssl.SSLContextImpl d
INFO: trustStore provider is :
Mar 25, 2013 4:05:08 PM ru.CryptoPro.ssl.SSLContextImpl d
INFO: init truststore
Mar 25, 2013 4:05:08 PM ru.CryptoPro.ssl.SSLContextImpl d
INFO: init trustmanager of type GostX509
Mar 25, 2013 4:05:08 PM ru.CryptoPro.ssl.SSLContextImpl d
INFO: init context...
Mar 25, 2013 4:05:09 PM ru.CryptoPro.ssl.SSLContextImpl d
INFO: Context inited.
Subscriber!!!!!!!!!!!!!!!!!!!!!!!! =333
Mar 25, 2013 4:05:09 PM ru.CryptoPro.ssl.n a
WARNING: %% No alias is match
java.io.IOException: Server returned HTTP response code: 403 for URL: https://сервер
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
at sun.net.www.protocol.http.HttpURLConnection$6.run(HttpURLConnection.java:1674)
at sun.net.www.protocol.http.HttpURLConnection$6.run(HttpURLConnection.java:1672)
at java.security.AccessController.doPrivileged(Native Method)
at sun.net.www.protocol.http.HttpURLConnection.getChainedException(HttpURLConnection.java:1670)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1243)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)
at HTTPS_Ch.main(HTTPS_Ch.java:139)
Caused by: java.io.IOException: Server returned HTTP response code: 403 for URL: https://сервер
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1625)
at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:468)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:338)
at HTTPS_Ch.main(HTTPS_Ch.java:134)
Offline Евгений Афанасьев  
#2 Оставлено : 25 марта 2013 г. 15:36:01(UTC)
Евгений Афанасьев

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 3,927
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 691 раз в 652 постах
Автор: Бородина Надежда Перейти к цитате

WARNING: %% No appropriate keys for handshake
PATH: /var/opt/cprocsp/keys/infa9
WARNING: %% No alias is match


Здравствуйте.
Сервер использует двухстороннюю аутентификацию?
По логам не загружается ключ и сертификат, вероятно, не задан или неправильно задан пароль к контейнеру (при двухсторонней аутентификации).


Offline Бородина Надежда  
#3 Оставлено : 25 марта 2013 г. 16:29:38(UTC)
Бородина Надежда

Статус: Активный участник

Группы: Участники
Зарегистрирован: 25.03.2013(UTC)
Сообщений: 46
Российская Федерация
Откуда: Москва

Сказал(а) «Спасибо»: 1 раз
Спасибо, контейнер я скопировала в /var/opt/cprocsp/keys/юзер
Offline Бородина Надежда  
#4 Оставлено : 25 марта 2013 г. 16:30:44(UTC)
Бородина Надежда

Статус: Активный участник

Группы: Участники
Зарегистрирован: 25.03.2013(UTC)
Сообщений: 46
Российская Федерация
Откуда: Москва

Сказал(а) «Спасибо»: 1 раз
Далее я проверяю его наличие csptest -keyset -enum_cont -fqcn -verifycontext
Offline Бородина Надежда  
#5 Оставлено : 25 марта 2013 г. 16:30:56(UTC)
Бородина Надежда

Статус: Активный участник

Группы: Участники
Зарегистрирован: 25.03.2013(UTC)
Сообщений: 46
Российская Федерация
Откуда: Москва

Сказал(а) «Спасибо»: 1 раз
Далее я проверяю его наличие csptest -keyset -enum_cont -fqcn -verifycontext
Offline Бородина Надежда  
#6 Оставлено : 25 марта 2013 г. 16:36:28(UTC)
Бородина Надежда

Статус: Активный участник

Группы: Участники
Зарегистрирован: 25.03.2013(UTC)
Сообщений: 46
Российская Федерация
Откуда: Москва

Сказал(а) «Спасибо»: 1 раз
Он существует.

CSP (Type:71) v3.6.5359 KC1 Release Ver:3.6.6497 OS:Solaris CPU:AMD64 FastCode:NoHardwareSupport.
CSP (Type:75) v3.6.5359 KC1 Release Ver:3.6.6497 OS:Solaris CPU:AMD64 FastCode:NoHardwareSupport.
AcquireContext: OK. HCRYPTPROV: 5930611
error: Volume Management must be running
error: Volume Management must be running
error: Volume Management must be running
error: Volume Management must be running
error: Volume Management must be running
error: Volume Management must be running
\\.\HDIMAGE\контейнер
OK.
Total:
[ErrorCode: 0x00000000]

Создаю хранилище на диске и добавляю в него корневой и личный сертификаты

Да, без пароля, разве обязательно следует с паролем создавать хранилище и контейнер?
Хорошо, спасибо большое, попробую задать пароли




Offline Евгений Афанасьев  
#7 Оставлено : 25 марта 2013 г. 16:37:48(UTC)
Евгений Афанасьев

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 3,927
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 691 раз в 652 постах
Попробуйте в начале кода сделать:
Код:

System.setProperty("javax.net.ssl.keyStoreType", "HDImageStore");
System.setProperty("javax.net.ssl.keyStorePassword", <password>);

При двухсторонней аутентификации клиент выбирает контейнер, которому подходит пароль <password>, а также по некоторым другим критериям.
Offline Бородина Надежда  
#8 Оставлено : 25 марта 2013 г. 17:33:10(UTC)
Бородина Надежда

Статус: Активный участник

Группы: Участники
Зарегистрирован: 25.03.2013(UTC)
Сообщений: 46
Российская Федерация
Откуда: Москва

Сказал(а) «Спасибо»: 1 раз
Переустановила сертийикаты в trust.store c указанием пароля

Установила пароль на контейнер
csptest -passwd 1 -container <имя контейнера>
Но к сожалению ошибка осталась.

Возможно импортировать в хранилище нужно как-то с привязкой к контейнеру?
Если хранилище сертификатов не делать рядом (т.е. создавая trust.store ) а выполнить
certmgr -inst -file <имя сертификата>.cer -cont RaUser-5a762beb-51f9-4c57-a218-933238f8c176

То сертификат добавляется в хранилище самого криптопро с привязкой к контейнеру. Вот как
путь к хранилищу криптопро указать... может быть в этом дело.

В любом случае спасибо, по крайней мере есть над чем подумать :-)
Offline Евгений Афанасьев  
#9 Оставлено : 25 марта 2013 г. 17:40:40(UTC)
Евгений Афанасьев

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 3,927
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 691 раз в 652 постах
выполните HDImageStore.getDir(), проверьте, где хранятся контейнеры, которые видит jcp.
Offline Бородина Надежда  
#10 Оставлено : 27 марта 2013 г. 18:52:31(UTC)
Бородина Надежда

Статус: Активный участник

Группы: Участники
Зарегистрирован: 25.03.2013(UTC)
Сообщений: 46
Российская Федерация
Откуда: Москва

Сказал(а) «Спасибо»: 1 раз
Добрый день!
Получилось правильно установить контейнер через JCP панель.
Теперь ошибки WARNING: %% No appropriate keys for handshake нет
Но осталась ошибка %% No alias is match

Опять же, создала хранилище в JCP панели.
Импортировала корневые сертификаты и личный с алиасом weblink.rb-ei.com
В коде указала алиас

Но ошибка остается. Может быть, подскажете в чем может быть проблема?


System.setProperty("javax.net.ssl.trustStoreType", "HDImageStore");
System.setProperty("javax.net.ssl.trustStoreAlias" ,"weblink.rb-ei.com");
System.setProperty("javax.net.ssl.trustStore", "C:\\Script\\trust.store");
System.setProperty("javax.net.ssl.trustStorePassword", "1");

Спасибо
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
2 Страницы12>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.