Статус: Активный участник
Группы: Участники
Зарегистрирован: 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)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,003 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Откуда: Крипто-Про Сказал(а) «Спасибо»: 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)
| Причина: Не указана |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 28.08.2013(UTC) Сообщений: 31
|
Автор: afev ![Перейти к цитате Перейти к цитате](/forum2/Themes/soclean/icon_latest_reply.gif) Попробуйте с помощью CSP произвести установку и пересохранение на диск (HDImageStore) Вопрос в том как сохранить из CSP в HDImageStore, я не нашел такой возможности, можете этот момент чуть подробнее описать? Спасибо!
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,003 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 714 раз в 674 постах
|
После установки pfx в КриптоПро CSP (с галочкой "Экспортировать ключ") попробуйте скопировать (кн. Скопировать в "Сервис") на съемный диск. |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 28.08.2013(UTC) Сообщений: 31
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 31.01.2014(UTC) Сообщений: 14 ![Женщина Женщина](/forum2/Themes/soclean/female.gif) ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png)
|
Добрый день!
Есть файл формата *.pfx. Я правильно понимаю, что, если установить его через CSP, то на выходе получится ключевой контейнер (папка ***.000), с которым работает JCP? Можно ли средствами JCP преобразовать *.pfx в ключевой контейнер, если CSP не используется?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,003 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 714 раз в 674 постах
|
Автор: WinterAnna ![Перейти к цитате Перейти к цитате](/forum2/Themes/soclean/icon_latest_reply.gif) Добрый день!
Есть файл формата *.pfx. Я правильно понимаю, что, если установить его через CSP, то на выходе получится ключевой контейнер (папка ***.000), с которым работает JCP? Можно ли средствами JCP преобразовать *.pfx в ключевой контейнер, если CSP не используется? JCP не поодерживает работу с *pfx, можно с помощью CSP получить из pfx ключевой контейнер вида *.000, который можно будет использовать в JCP. |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 31.01.2014(UTC) Сообщений: 14 ![Женщина Женщина](/forum2/Themes/soclean/female.gif) ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png)
|
Понятно, спасибо! А подскажите, через CSP *.pfx как установить? Он должен устнавливаться уже в контейнер, или как? Не совсем понимаю, мне же на выходе нужен контейнер И еще вопрос, должна ли соблюдаться какая-то совместимость версий CSP и JCP? Или контейнер, полученный таким образом на CSP, например версии 3.6, можно будет использовать на любой версии JСP?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,003 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 714 раз в 674 постах
|
Автор: WinterAnna ![Перейти к цитате Перейти к цитате](/forum2/Themes/soclean/icon_latest_reply.gif) А подскажите, через CSP *.pfx как установить? Он должен устнавливаться уже в контейнер, или как? Не совсем понимаю, мне же на выходе нужен контейнер
Двойным кликом по файлу, с помощью мастера. Затем в панели CSP можно будет скопировать на флешку, например. Автор: WinterAnna ![Перейти к цитате Перейти к цитате](/forum2/Themes/soclean/icon_latest_reply.gif) должна ли соблюдаться какая-то совместимость версий CSP и JCP? Или контейнер, полученный таким образом на CSP, например версии 3.6, можно будет использовать на любой версии JСP?
Да, совместимость есть, контейнер из 3.6 (и выше) можно использовать в любой версии JCP. Отредактировано пользователем 23 сентября 2014 г. 12:18:45(UTC)
| Причина: Не указана |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,473 ![Мужчина Мужчина](/forum2/Themes/soclean/male.gif) ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Сказал «Спасибо»: 553 раз Поблагодарили: 2239 раз в 1745 постах
|
Дваждый щелкнуть на PFX-файл и следовать по шагам в мастере установки.
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close