Статус: Участник
Группы: Участники
Зарегистрирован: 23.01.2013(UTC) Сообщений: 11  Откуда: Владимир Сказал(а) «Спасибо»: 1 раз
|
В АРМ Администратора очень красиво печатаются запросы на сертификат и на сами сертификаты. Мне необходимо тоже самое выполнить из стороннего приложения. Я нашел в Арме замечательные файлики Cert.xsl и Request.xsl, но посмотрев внимательно вижу что там много всего нехватает, Текстов OID совсем мало, и они подаются видимо из недров АРМ. На вход xslt необходимо передавать xml, собственно какие можете посоветовать варианты?
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 25.12.2007(UTC) Сообщений: 1,733  Откуда: КРИПТО-ПРО Поблагодарили: 177 раз в 168 постах
|
Вот этот скрипт читает сертификат из файла и сохраняет его в XML, к которому можно уже применять XSLT преобразование. Запускать на машине с АРМ.
Dim cert Set cert = CreateObject("CPICom.Certificate") cert.Load "cert.cer" cert.document.save "cert.xml"
С запросом на сертификат аналогично. |
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 23.08.2010(UTC) Сообщений: 74 Откуда: Омск
Сказал(а) «Спасибо»: 2 раз
|
А в C# есть возможность конвертировать сертификат в xml для последующего преобразования xslt?
Хотел использовать функцию ConvertPKCStoXML, но строка PKCS полученная в ответе функции GetCertificateInfo не подходит. В X509Certificate2 есть метод Export, попробовал передать туда параметр PKCS7, и метод выбрасывает ислючение.
Остается вариант подключить CAPICOM к проекту, но хочется как-то нативными средствами.
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 14,190   Сказал «Спасибо»: 621 раз Поблагодарили: 2397 раз в 1886 постах
|
Автор: SuslegStyle  А в C# есть возможность конвертировать сертификат в xml для последующего преобразования xslt?
Хотел использовать функцию ConvertPKCStoXML, но строка PKCS полученная в ответе функции GetCertificateInfo не подходит. В X509Certificate2 есть метод Export, попробовал передать туда параметр PKCS7, и метод выбрасывает ислючение.
Остается вариант подключить CAPICOM к проекту, но хочется как-то нативными средствами. поПрограммировать потребуется немного ... в C# или использовать готовый вариант. |
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 25.12.2007(UTC) Сообщений: 1,733  Откуда: КРИПТО-ПРО Поблагодарили: 177 раз в 168 постах
|
Цитата:Хотел использовать функцию ConvertPKCStoXML, но строка PKCS полученная в ответе функции GetCertificateInfo не подходит. Должна подходить. Какие проблемы возникают? |
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 23.08.2010(UTC) Сообщений: 74 Откуда: Омск
Сказал(а) «Спасибо»: 2 раз
|
Передаваемый PKCS
MIII1TCCCISgAwIBAgIKVOAlCwAAAABhpzAIBgYqhQMCAgMwggE/MRgwFgYFKoUD ZAESDTEwMjU1MDA3MzkzODQxGjAYBggqhQMDgQMBARIMMDA1NTAzMDY1NzI2MSYw JAYDVQQJDB3Rg9C7LiAxNyDQoNCw0LHQvtGH0LDRjyAxMDHQsjEdMBsGCSqGSIb3 DQEJARYOY2FAZS1wb3J0YWwucnUxCzAJBgNVBAYTAlJVMScwJQYDVQQIDB41NSDQ ntC80YHQutCw0Y8g0L7QsdC70LDRgdGC0YwxETAPBgNVBAcMCNCe0LzRgdC6MR8w HQYDVQQKDBbQntCe0J4g0JUt0J/QvtGA0YLQsNC7MTAwLgYDVQQLDCfQo9C00L7R gdGC0L7QstC10YDRj9GO0YnQuNC5INGG0LXQvdGC0YAxJDAiBgNVBAMMG9Cj0KYg 0J7QntCeINCVLdCf0L7RgNGC0LDQuzAeFw0xNDEyMjkwODI4MDBaFw0xNTEyMjkw ODM4MDBaMIIBujEWMBQGBSqFA2QDEgswODAxNDg3Mzk1NzEYMBYGBSqFA2QBEg0x MTI1NTQzMDU5MDY5MRowGAYIKoUDA4EDAQESDDAwNTUwNzIzNTM0NDEZMBcGCSqG SIb3DQEJARYKYWdfZkBiay5ydTELMAkGA1UEBhMCUlUxKzApBgNVBAgeIgA1ADUA IAQeBDwEQQQ6BDAETwAgBD4EMQQ7BDAEQQRCBEwxETAPBgNVBAceCAQeBDwEQQQ6 MSMwIQYDVQQKHhoEHgQeBB4AIAQQBDMEQAQ+BCMEQQQ/BDUERTEKMAgGA1UECxMB MDFBMD8GA1UEAx44BCEEQwRCBDoEPgQyBDAETwAgBBIEOAQ6BEIEPgRABDgETwAg BBwEOARFBDAEOQQ7BD4EMgQ9BDAxJzAlBgNVBAkeHgRDBDsALgAgBBoEPgRABD4E OwQ1BDIEMAAsADMAMjEZMBcGA1UEDB4QBBQEOARABDUEOgRCBD4EQDEvMC0GA1UE Kh4mBBIEOAQ6BEIEPgRABDgETwAgBBwEOARFBDAEOQQ7BD4EMgQ9BDAxGTAXBgNV BAQeEAQhBEMEQgQ6BD4EMgQwBE8wYzAcBgYqhQMCAhMwEgYHKoUDAgIkAAYHKoUD AgIeAQNDAARAnGxgZEyVKiLht8gkbvhsAd+ujL1k84T2YR96+QUiIIXb1iitCaiQ lkeR3+kHeBNVB4HBMMPmwLbOIf0NqrNY9aOCBN8wggTbMA4GA1UdDwEB/wQEAwIE 8DAyBgNVHSUEKzApBggrBgEFBQcDBAYKKoUDA04BAQMBBAYHKoUDAgIiBgYIKwYB BQUHAwIwHQYDVR0OBBYEFK9SwVTRJ2j4dwtr5H8JV2r5/aIoMIIBgAYDVR0jBIIB dzCCAXOAFLgJx7Z7liIISa+lnYLgq13w09yDoYIBR6SCAUMwggE/MRgwFgYFKoUD ZAESDTEwMjU1MDA3MzkzODQxGjAYBggqhQMDgQMBARIMMDA1NTAzMDY1NzI2MSYw JAYDVQQJDB3Rg9C7LiAxNyDQoNCw0LHQvtGH0LDRjyAxMDHQsjEdMBsGCSqGSIb3 DQEJARYOY2FAZS1wb3J0YWwucnUxCzAJBgNVBAYTAlJVMScwJQYDVQQIDB41NSDQ ntC80YHQutCw0Y8g0L7QsdC70LDRgdGC0YwxETAPBgNVBAcMCNCe0LzRgdC6MR8w HQYDVQQKDBbQntCe0J4g0JUt0J/QvtGA0YLQsNC7MTAwLgYDVQQLDCfQo9C00L7R gdGC0L7QstC10YDRj9GO0YnQuNC5INGG0LXQvdGC0YAxJDAiBgNVBAMMG9Cj0KYg 0J7QntCeINCVLdCf0L7RgNGC0LDQu4IQOnehVgaLpb1DjQHmY4ANBDB+BgNVHR8E dzB1MDigNqA0hjJodHRwOi8vdWMuZS1wb3J0YWwucnUvY2VydGVucm9sbC9lLXBv cnRhbF8yMDEyLmNybDA5oDegNYYzaHR0cDovL3VjMi5lLXBvcnRhbC5ydS9jZXJ0 ZW5yb2xsL2UtcG9ydGFsXzIwMTIuY3JsMIH1BggrBgEFBQcBAQSB6DCB5TAxBggr BgEFBQcwAYYlaHR0cDovL29jc3AuZS1wb3J0YWwucnUvb2NzcC9vY3NwLnNyZjA+ BggrBgEFBQcwAoYyaHR0cDovL3VjLmUtcG9ydGFsLnJ1L2NlcnRlbnJvbGwvZS1w b3J0YWxfMjAxMi5jcnQwPwYIKwYBBQUHMAKGM2h0dHA6Ly91YzIuZS1wb3J0YWwu cnUvY2VydGVucm9sbC9lLXBvcnRhbF8yMDEyLmNydDAvBggrBgEFBQcwAoYjaHR0 cDovL29jc3AuZS1wb3J0YWwucnUvdHNwL3RzcC5zcmYwKwYDVR0QBCQwIoAPMjAx NDEyMjkwODI4MDBagQ8yMDE1MTIyOTA4MjgwMFowLQYDVR0gBCYwJDAIBgYqhQNk cQEwCAYGKoUDZHECMA4GDCqFAwOBA4gXAAMDATA2BgUqhQNkbwQtDCsi0JrRgNC4 0L/RgtC+0J/RgNC+IENTUCIgKNCy0LXRgNGB0LjRjyAzLjYpMIHlBgUqhQNkcASB 2zCB2AwrItCa0YDQuNC/0YLQvtCf0YDQviBDU1AiICjQstC10YDRgdC40Y8gMy42 KQxTItCj0LTQvtGB0YLQvtCy0LXRgNGP0Y7RidC40Lkg0YbQtdC90YLRgCAi0JrR gNC40L/RgtC+0J/RgNC+INCj0KYiINCy0LXRgNGB0LjRjyAxLjUMLdCh0KQvMTI0 LTIyMzgg0L7RgiAwNCDQvtC60YLRj9Cx0YDRjyAyMDEzINCzLgwl0KHQpC8xMjgt MTY1OCDQvtGCIDAxINC80LDRjyAyMDExINCzLjAIBgYqhQMCAgMDQQCNV0qrtj6V qd2/A2NbAEzCUW2pUZZaPGFFDKdcfVDHF4trALoL3rYUc7uA1yLX5U1H25flYzDE eph60Aq1JG94
При вызове метода ConvertPKCS2XML возникает exception
Тип содержимого text/html ответного сообщения не соответствует типу содержимого привязки (text/xml; charset=utf-8). При использовании особого кодировщика необходимо правильно реализовать метод IsContentTypeSupported. Первые 1024 байтов ответного сообщения: "<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251"/>
<title>500 - ���������� ������ �������.</title>
<style type="text/css">
<!--
body{margin:0;font-size:.7em;font-family:Verdana, Arial, Helvetica, sans-serif;background:#EEEEEE;}
fieldset{padding:0 15px 10px 15px;}
h1{font-size:2.4em;margin:0;color:#FFF;}
h2{font-size:1.7em;margin:0;color:#CC0000;}
h3{font-size:1.2em;margin:10px 0 0 0;color:#000000;}
#header{width:96%;margin:0 0 0 0;padding:6px 2% 6px 2%;font-family:"trebuchet MS", Verdana, sans-serif;color:#FFF;
background-color:#555555;}
#content{margin:0 0 0 2%;position:relative;}
.content-container{background:#FFF;width:96%;margin-top:8px;padding:10px;position:relative;}
-->
</style>
</head>
<body>
<div id="header"><h1>������ �������</h1></div>
<div id="content">
<div class="content-container"><fiel".
При этом binding настроен абсолютно так же как и при вызовах других мтеодов: Код: BasicHttpBinding b = new BasicHttpBinding(BasicHttpSecurityMode.Transport);
b.Security.Transport.ClientCredentialType = HttpClientCredentialType.Certificate;
+ прикладывается сертификат
При вызове других методов я встречался с этой ошибкой, но оказывалось что передавались некорректные параметры. Поэтому и тут меня эта ошибка натолкнула на мысль, что может GetCertificateInfo возвращает не PCKS7 а что-то другое.
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 23.08.2010(UTC) Сообщений: 74 Откуда: Омск
Сказал(а) «Спасибо»: 2 раз
|
Возникла мысль, что может эта ошибка говорит о том, что возвращаемый xml в win-1251, а не в utf-8. Если так, то непонятно как ответ этот получить. Если в привязке задать кодировку windows1251, то возникает ислкючение Неподдерживаемый тип кодировки. Хотя, все же 500 - внутренняя обшибка сервера InnerExeption. Значит переданный PKCS не понравился Еще попробовал PKCS 7 получить следующим образом, но Exception тот же самый (внутренняя ошибка сервера) Код:
X509Certificate2Collection xCollection = new X509Certificate2Collection();
xCollection.Add(Certificate);
string PKCS = Convert.ToBase64String(xCollection.Export(X509ContentType.Pkcs7));
В логах центра регистрации значилась ошибка Цитата:The VB Application identified by the event source logged this Application Registration: Thread ID: 5988 ,Logged: Ошибка модуля удаленного доступа к ЦР КриптоПро УЦ: Метод: CertView.ConvertPKCS2XML Источник: RegistrationCenter Номер: 0x80040201 (-2147220991) Описание: Доступ запрещен политикой ЦР. (CertView.ConvertPKCS2XML)
Обращение к функции шло от роли Администратора и в настройках CertView.ConvertPKCS2XML была галочка Выполнение. Дополнительно поставил галочку Делегация и теперь вызов функции проходит нормально. (почему так, мне непонятно) Отредактировано пользователем 15 января 2015 г. 6:47:35(UTC)
| Причина: Не указана
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 25.12.2007(UTC) Сообщений: 1,733  Откуда: КРИПТО-ПРО Поблагодарили: 177 раз в 168 постах
|
Цитата:Дополнительно поставил галочку Делегация и теперь вызов функции проходит нормально. (почему так, мне непонятно) Сертификат принадлежит другому пользователю, а для этого стандартно требуется разрешение делегации. |
|
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close