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

Уведомление

Icon
Error

2 Страницы12>
Опции
К последнему сообщению К первому непрочитанному
Offline rnovoselsky  
#1 Оставлено : 12 сентября 2013 г. 22:58:35(UTC)
rnovoselsky

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

Группы: Участники
Зарегистрирован: 28.08.2013(UTC)
Сообщений: 31

Добрый день.

У меня есть УЦ Крипто про, и есть задача работать с ним через SOAP.
Т.е. у меня есть Request по которому я хочу получить сертификат пользователя.

У меня есть сертификат администратора (в виде pkcs12 и pkcs7).
У меня есть код вида:

Код:
public class Main {

    public static void initialize() throws Exception{
        KeyStore store = KeyStore.getInstance("HDImageStore");

        store.load(null, null);
        Certificate certificate = CertificateFactory.getInstance("X.509").generateCertificate(new FileInputStream("Z:\\Work\\Java_Projects\\CACPModule\\win2003-der.cer"));
        store.setCertificateEntry("win2003ca", certificate);
        Certificate certificate1 = CertificateFactory.getInstance("X.509").generateCertificate(new FileInputStream("Z:\\Work\\Java_Projects\\CACPModule\\hm_admin-der.cer"));
        store.setCertificateEntry("cacert", certificate1);
        store.store(new FileOutputStream("Z:\\Work\\Java_Projects\\CACPModule\\client.store"), "Qwer1234".toCharArray());
    }


    public static void main(String[] args) throws Exception{
         initialize();
         URL svcURL = new URL("https://win2003ca/ra/ra.asp");
         String request = "MIICfTCCAiwCAQAwggGOMRkwFwYDVQQEDBDQktC40LfQs9GD0L3QvtCyMSgwJgYDVQQqDB/QnNC4\n" +
                "0YXQsNC40Lsg0KHQtdGA0LPQtdC10LLQuNGHMRMwEQYDVQQJDArQsNC00YDQtdGBMRYwFAYFKoUD\n" +
                "ZAMSCzEzNDY5MDY3Njc5MR0wGwYJKoZIhvcNAQkCEw4xMzQtNjkwLTY3Ni03OTEZMBcGA1UEBRMQ\n" +
                "MGI1MjAwMjUxMDE5OTI0MzE5MDcGA1UEAwww0JLQuNC30LPRg9C90L7QsiDQnNC40YXQsNC40Lsg\n" +
                "0KHQtdGA0LPQtdC10LLQuNGHMRowGAYDVQQKExFNb3Njb3cgR292ZXJubWVudDEVMBMGA1UEBwwM\n" +
                "0JzQvtGB0LrQstCwMRUwEwYDVQQIDAzQnNC+0YHQutCy0LAxGTAXBggqhQMDgQMBARILMTEzMjQx\n" +
                "MzI0MTIxEjAQBgUqhQNkARIHMjMyMzIzNDELMAkGA1UEBhMCUlUxHzAdBgkqhkiG9w0BCQEWEHZp\n" +
                "c2d1bm92QHRlc3QucnUwYzAcBgYqhQMCAhMwEgYHKoUDAgIjAQYHKoUDAgIeAQNDAARAzuE+En+d\n" +
                "KAkG4+v59f4J6HcX3DEARK9kDGhP6Ged09Wiy3W2i0FyT0EvSnVOQUEK0sP2CmhG9wGYxhdE+L1L\n" +
                "MqAwMC4GCisGAQQBgjcCAQ4xIDAeMA8GA1UdJQQIMAYGBFUdJQMwCwYDVR0PBAQDAgbAMAgGBiqF\n" +
                "AwICAwNBAMYBOdalDJQSVvXKeKqKF0I2tEun/gTouqrllycXM6URL070ZnZUARhvyv8hRyD9AEPS\n" +
                "ma0pORLxfSkt/2kSO9c=";
         System.setProperty("javax.net.ssl.supportGVO","true");
         System.setProperty("javax.net.ssl.requireClientAuth", "true");
         System.setProperty("javax.net.ssl.trustStoreType", "HDImageStore");
         System.setProperty("javax.net.ssl.trustStore", "Z:\\\\Work\\\\Java_Projects\\\\CACPModule\\\\client.store");
         System.setProperty("javax.net.ssl.trustStorePassword", "Qwer1234");

        RALocator locator = new RALocator();
         RegistrationSoapBindingStub service = (RegistrationSoapBindingStub)locator.getRegistrationSoapPort(svcURL);

         String reqId = service.createRequestByAdmin(request, "", null, "");
         System.out.println("RequestId:" + reqId);

    }

}


На выходе получаю следующее:
Код:
12.09.2013 23:52:21 ru.CryptoPro.JCP.tools.Starter check
INFO: Loading JCP 1.0.54 36641
12.09.2013 23:52:21 ru.CryptoPro.JCP.tools.Starter check
INFO: JCP loaded.
log4j:WARN No appenders could be found for logger (org.apache.axis.i18n.ProjectResourceBundle).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
12.09.2013 23:52:21 ru.CryptoPro.ssl.SSLContextImpl d
INFO: keyStore is : 
12.09.2013 23:52:21 ru.CryptoPro.ssl.SSLContextImpl d
INFO: keyStore type is : 
12.09.2013 23:52:21 ru.CryptoPro.ssl.SSLContextImpl d
INFO: keyStore provider is : 
12.09.2013 23:52:21 ru.CryptoPro.ssl.SSLContextImpl d
INFO: init keystore
12.09.2013 23:52:21 ru.CryptoPro.ssl.SSLContextImpl d
INFO: defaultStoreProvider = 
12.09.2013 23:52:21 ru.CryptoPro.ssl.SSLContextImpl d
INFO: 
12.09.2013 23:52:21 ru.CryptoPro.ssl.SSLContextImpl d
INFO: init keymanager of type GostX509
12.09.2013 23:52:21 ru.CryptoPro.ssl.SSLContextImpl d
INFO: trustStore is: Z:\\Work\\Java_Projects\\CACPModule\\client.store
12.09.2013 23:52:21 ru.CryptoPro.ssl.SSLContextImpl d
INFO: trustStore type is : HDImageStore
12.09.2013 23:52:21 ru.CryptoPro.ssl.SSLContextImpl d
INFO: trustStore provider is : 
12.09.2013 23:52:21 ru.CryptoPro.ssl.SSLContextImpl d
INFO: init truststore
12.09.2013 23:52:21 ru.CryptoPro.ssl.SSLContextImpl d
INFO: init trustmanager of type GostX509
12.09.2013 23:52:21 ru.CryptoPro.ssl.SSLContextImpl d
INFO: init context...
12.09.2013 23:52:21 ru.CryptoPro.ssl.SSLContextImpl d
INFO: Context inited.
12.09.2013 23:52:22 ru.CryptoPro.ssl.n a
WARNING: %% No alias is match
Exception in thread "main" AxisFault
 faultCode: {http://xml.apache.org/axis/}HTTP
 faultSubcode: 
 faultString: (403)Forbidden
 faultActor: 
 faultNode: 
 faultDetail: 
	{}:return code:  403
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<HTML><HEAD><TITLE>The page requires a client certificate</TITLE>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=Windows-1252">
<STYLE type="text/css">
  BODY { font: 8pt/12pt verdana }
  H1 { font: 13pt/15pt verdana }
  H2 { font: 8pt/12pt verdana }
  A:link { color: red }
  A:visited { color: maroon }
</STYLE>
</HEAD><BODY><TABLE width=500 border=0 cellspacing=10><TR><TD>

<h1>The page requires a client certificate</h1>
The page you are attempting to access requires your browser to have a Secure Sockets Layer (SSL) client certificate that the Web server will recognize. The client certificate is used for identifying you as a valid user of the resource.
<hr>
<p>Please try the following:</p>
<ul>
<li>Contact the Web site administrator if you believe you should be able to view this directory or page without a client certificate, or to obtain a client certificate.</li>
<li>If you already have a client certificate, use your Web browser's security features to ensure that your client certificate is installed properly. (Some Web browsers refer
 to client certificates as browser or personal certificates.)</li>
</ul>
<h2>HTTP Error 403.7 - Forbidden: SSL client certificate is required.<br>Internet Information Services (IIS)</h2>
<hr>
<p>Technical Information (for support personnel)</p>
<ul>
<li>Go to <a href="http://go.microsoft.com/fwlink/?linkid=8180">Microsoft Product Support Services</a> and perform a title search for the words <b>HTTP</b> and <b>403</b>.</li>
<li>Open <b>IIS Help</b>, which is accessible in IIS Manager (inetmgr),
 and search for topics titled <b>About Certificates</b>, <b>Using Certificate Trust Lists</b>, <b>Enabling Client Certificates</b>, and <b>About Custom Error Messages</b>.</li>
</ul>

</TD></TR></TABLE></BODY></HTML>

	



	{http://xml.apache.org/axis/}HttpErrorCode:403

(403)Forbidden
	at org.apache.axis.transport.http.HTTPSender.readFromSocket(HTTPSender.java:744)
	at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:144)
	at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
	at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
	at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
	at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
	at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
	at org.apache.axis.client.Call.invoke(Call.java:2767)
	at org.apache.axis.client.Call.invoke(Call.java:2443)
	at org.apache.axis.client.Call.invoke(Call.java:2366)
	at org.apache.axis.client.Call.invoke(Call.java:1812)
	at ru.test.ws.cpcaclient.RegistrationSoapBindingStub.createRequestByAdmin(RegistrationSoapBindingStub.java:260)
	at main.Main.main(Main.java:57)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)


1) Возникает предположение - ему надо закрытый ключ... но как его положить в HDImageStore из моего ".pfx"?
Т.е в CSP все нормально с сертификатом, а как его в JCP скопировать дабы из явы пользоваться?

2) Возникает второе предположение - я что-то делаю не так или упустил.

Из браузера все открывается(ra.wsdl открывается просто, ra.asp открывается при выборе сертификата администратора).
Куда копать?

Отредактировано пользователем 12 сентября 2013 г. 23:32:13(UTC)  | Причина: Не указана

Offline Евгений Афанасьев  
#2 Оставлено : 15 сентября 2013 г. 22:37:00(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 714 раз в 674 постах
Здравствуйте. Т.к. используется двухсторонняя аутентификация ("The page requires a client certificate", "SSL client certificate is required"), то со клиентской стороны требуется закрытый ключ и сертификат. JCP не поддерживает формат PKCS12. Попробуйте с помощью CSP произвести установку и пересохранение на диск (HDImageStore) и положите в папку JCP с контейнерами (см. в панели JCP: ControlPane <JRE>). Затем в коде задайте свойства:
Код:

System.setProperty("javax.net.ssl.keyStoreType", "HDImageStore");
System.setProperty("javax.net.ssl.keyStorePassword", "<пароль_на_ключевой_контейнер>");

Отредактировано пользователем 15 сентября 2013 г. 22:42:02(UTC)  | Причина: Не указана

Offline rnovoselsky  
#3 Оставлено : 16 сентября 2013 г. 10:37:41(UTC)
rnovoselsky

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

Группы: Участники
Зарегистрирован: 28.08.2013(UTC)
Сообщений: 31

Автор: afev Перейти к цитате
Попробуйте с помощью CSP произвести установку и пересохранение на диск (HDImageStore)



Вопрос в том как сохранить из CSP в HDImageStore, я не нашел такой возможности, можете этот момент чуть подробнее описать?
Спасибо!
Offline Евгений Афанасьев  
#4 Оставлено : 16 сентября 2013 г. 13:04:28(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 714 раз в 674 постах
После установки pfx в КриптоПро CSP (с галочкой "Экспортировать ключ") попробуйте скопировать (кн. Скопировать в "Сервис") на съемный диск.
Offline rnovoselsky  
#5 Оставлено : 16 сентября 2013 г. 14:20:42(UTC)
rnovoselsky

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

Группы: Участники
Зарегистрирован: 28.08.2013(UTC)
Сообщений: 31

Спасибо, продвинулись дальше. =)

Отредактировано пользователем 16 сентября 2013 г. 14:31:50(UTC)  | Причина: Не указана

Offline WinterAnna  
#6 Оставлено : 23 сентября 2014 г. 11:56:52(UTC)
WinterAnna

Статус: Участник

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

Добрый день!

Есть файл формата *.pfx. Я правильно понимаю, что, если установить его через CSP, то на выходе получится ключевой контейнер (папка ***.000), с которым работает JCP?
Можно ли средствами JCP преобразовать *.pfx в ключевой контейнер, если CSP не используется?
Offline Евгений Афанасьев  
#7 Оставлено : 23 сентября 2014 г. 12:04:38(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 714 раз в 674 постах
Автор: WinterAnna Перейти к цитате
Добрый день!

Есть файл формата *.pfx. Я правильно понимаю, что, если установить его через CSP, то на выходе получится ключевой контейнер (папка ***.000), с которым работает JCP?
Можно ли средствами JCP преобразовать *.pfx в ключевой контейнер, если CSP не используется?


JCP не поодерживает работу с *pfx, можно с помощью CSP получить из pfx ключевой контейнер вида *.000, который можно будет использовать в JCP.
Offline WinterAnna  
#8 Оставлено : 23 сентября 2014 г. 12:15:06(UTC)
WinterAnna

Статус: Участник

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

Понятно, спасибо!
А подскажите, через CSP *.pfx как установить? Он должен устнавливаться уже в контейнер, или как? Не совсем понимаю, мне же на выходе нужен контейнер Think
И еще вопрос, должна ли соблюдаться какая-то совместимость версий CSP и JCP? Или контейнер, полученный таким образом на CSP, например версии 3.6, можно будет использовать на любой версии JСP?
Offline Евгений Афанасьев  
#9 Оставлено : 23 сентября 2014 г. 12:18:10(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 714 раз в 674 постах
Автор: WinterAnna Перейти к цитате

А подскажите, через CSP *.pfx как установить? Он должен устнавливаться уже в контейнер, или как? Не совсем понимаю, мне же на выходе нужен контейнер

Двойным кликом по файлу, с помощью мастера. Затем в панели CSP можно будет скопировать на флешку, например.
Автор: WinterAnna Перейти к цитате

должна ли соблюдаться какая-то совместимость версий CSP и JCP? Или контейнер, полученный таким образом на CSP, например версии 3.6, можно будет использовать на любой версии JСP?

Да, совместимость есть, контейнер из 3.6 (и выше) можно использовать в любой версии JCP.

Отредактировано пользователем 23 сентября 2014 г. 12:18:45(UTC)  | Причина: Не указана

Offline Андрей Писарев  
#10 Оставлено : 23 сентября 2014 г. 12:18:12(UTC)
Андрей *

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

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

Сказал «Спасибо»: 553 раз
Поблагодарили: 2239 раз в 1745 постах
Дваждый щелкнуть на PFX-файл и следовать по шагам в мастере установки.
Техническую поддержку оказываем тут
Наша база знаний
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest (2)
2 Страницы12>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.