<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Форум Рутокен &mdash; Запрос на сертификат]]></title>
		<link>https://forum.rutoken.ru/topic/3230/</link>
		<atom:link href="https://forum.rutoken.ru/feed/rss/topic/3230/" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Запрос на сертификат».]]></description>
		<lastBuildDate>Fri, 14 Aug 2020 15:05:57 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Запрос на сертификат]]></title>
			<link>https://forum.rutoken.ru/post/14673/#p14673</link>
			<description><![CDATA[<p>Огромное спасибо, это похоже на то, что нужно</p>]]></description>
			<author><![CDATA[null@example.com (Влaдимиp)]]></author>
			<pubDate>Fri, 14 Aug 2020 15:05:57 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/14673/#p14673</guid>
		</item>
		<item>
			<title><![CDATA[Re: Запрос на сертификат]]></title>
			<link>https://forum.rutoken.ru/post/14666/#p14666</link>
			<description><![CDATA[<p><strong>Влaдимиp</strong>, добрый день!</p><p>Функция C_EX_CreateCSR библиотеки pkcs11ecp использует синтаксис, применяемый для описания расширений в OpenSSL <strong>x509v3_config</strong>. С синтаксисом можно ознакомиться по ссылке: <a href="https://www.openssl.org/docs/manmaster/man5/x509v3_config.html">https://www.openssl.org/docs/manmaster/ … onfig.html</a> . В том числе поддерживаются задаваемые пользователем структуры расширений специального вида (см. ARBITRARY EXTENSIONS). <br />К сожалению, построение расширений специального вида -- не самая приятная задача (особенно отладка при помощи самой функции C_EX_CreateCSR). Надеюсь, описание ниже позволит немного упростить вам использование.</p><p>C_EX_CreateCSR принимает расширения в виде последовательно перечисленных пар <strong>IDENTIFIER</strong>, <strong>VALUE</strong>. Можно считать, что для каждой пары строится следующее описание в синтаксисе OpenSSL x509v3_config:</p><div class="codebox"><pre><code>[extension]
IDENTIFIER = VALUE</code></pre></div><p>Если необходимо задать ARBITRARY EXTENSION, включающее в себя CONSTRUCTED тип, VALUE будет многострочным, например:</p><div class="codebox"><pre><code>const char* VALUE = &quot;critical,ASN1:SEQUENCE:IssuerSignTool\n[IssuerSignTool]\nsignTool = UTF8String:\&quot;SignTool\&quot;\ncATool = UTF8String:\&quot;cATool\&quot;\nsignToolCert = UTF8String:\&quot;signToolCert\&quot;\ncAToolCert = UTF8String:\&quot;cAToolCert\&quot;&quot;;</code></pre></div><p>Немного понятнее будет с современным C++:<br /></p><div class="codebox"><pre><code>const char* VALUE = R&quot;(critical,ASN1:SEQUENCE:IssuerSignTool
[IssuerSignTool]
signTool = UTF8String:&quot;SignTool&quot;
cATool = UTF8String:&quot;cATool&quot;
signToolCert = UTF8String:&quot;signToolCert&quot;
cAToolCert = UTF8String:&quot;cAToolCert&quot;)&quot;;</code></pre></div><p>Для отладки описания расширения специального вида можно воспользоваться утилитами в openssl: asn1parse или req.</p><p>Использование asn1parse. Задать описание ASN1-структуры в файле (asn1.nconf), например:</p><div class="codebox"><pre><code>asn1 = SEQUENCE:IssuerSignTool

[IssuerSignTool]
signTool = UTF8String:&quot;SignTool&quot;
cATool = UTF8String:&quot;SignTool&quot;
signToolCert = UTF8String:&quot;signToolCert&quot;
cAToolCert = SEQUENCE:ololo


[ololo]
a=INTEGER:01</code></pre></div><p>и далее попробовать это конвертировать в бинарное представление:</p><div class="codebox"><pre><code>openssl asn1parse -genconf ./asn1.conf -out 1.der
    0:d=0  hl=2 l=  39 cons: SEQUENCE
    2:d=1  hl=2 l=   8 prim: UTF8STRING        :SignTool
   12:d=1  hl=2 l=   8 prim: UTF8STRING        :SignTool
   22:d=1  hl=2 l=  12 prim: UTF8STRING        :signToolCert
   36:d=1  hl=2 l=   3 cons: SEQUENCE
   38:d=2  hl=2 l=   1 prim: INTEGER           :01</code></pre></div><p>Для отладки при помощи утилиты req в используемом файле openssl.cnf необходимо заполнить секцию, задающую описание расширений запроса, после чего попробовать сгенерировать такой запрос на сертификат. Если удалось, все, что слева от равно в значении секции можно использовать как IDENTIFIER, а все, что справа, до конца секции, -- как VALUE в вызове C_EX_CreateCSR. <br />Например, в openssl.cnf расширение для запроса может быть настроено таким образом:</p><div class="codebox"><pre><code># Настройки создания запросов на сертификат
[ req ]
prompt = no
distinguished_name = req_distinguished_name
req_extensions = ext1

[ ext1 ]
1.2.2.2.3.1 = critical,ASN1:SEQUENCE:IssuerSignTool

[IssuerSignTool]
signTool = UTF8String:&quot;SignTool&quot;
cATool = UTF8String:&quot;SignTool&quot;
signToolCert = UTF8String:&quot;signToolCert&quot;
cAToolCert = SEQUENCE:ololo

[ololo]
a=INTEGER:01</code></pre></div><p>Чтобы убедиться, что описание правильное, нужно попробовать создать запрос:</p><div class="codebox"><pre><code>OPENSSL_CONF=openssl.cnf openssl req -new</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Евгений Мироненко)]]></author>
			<pubDate>Thu, 13 Aug 2020 14:47:57 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/14666/#p14666</guid>
		</item>
		<item>
			<title><![CDATA[Re: Запрос на сертификат]]></title>
			<link>https://forum.rutoken.ru/post/14665/#p14665</link>
			<description><![CDATA[<p>Спасибо, ни разу не то. В требованиях лишь описаны структуры типа<br />IssuerSignTool ::= SEQUENCE {</p><p>&nbsp; &nbsp; signTool&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; UTF8String SIZE(1.200),</p><p>&nbsp; &nbsp; cATool&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; UTF8String SIZE(1..200),</p><p>&nbsp; &nbsp; signToolCert&nbsp; &nbsp; &nbsp; &nbsp; UTF8String SIZE(1.. 100),</p><p>&nbsp; &nbsp; cAToolCert&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; UTF8String SIZE(1.100) }.</p><p>Вопрос в том, как из нее получить строку, которую примет C_EX_CreateCSR. В Данном случае должно быть что-то вроде ASN1:SEQUENCE:&lt;Что-то еще&gt;. Вопрос в том, как по имеющимся ASN- структурам строить такие строки, а еще лучше - общие правила построения таких строк, включая явно не относящийся к ASN модификатор critical и возможные иные модификаторы</p>]]></description>
			<author><![CDATA[null@example.com (Влaдимиp)]]></author>
			<pubDate>Thu, 13 Aug 2020 13:01:02 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/14665/#p14665</guid>
		</item>
		<item>
			<title><![CDATA[Re: Запрос на сертификат]]></title>
			<link>https://forum.rutoken.ru/post/14658/#p14658</link>
			<description><![CDATA[<p><strong>Влaдимиp</strong>, добрый день!</p><p>О формате полей сертификата лучше всего расскажут <a href="https://www.garant.ru/products/ipo/prime/doc/70033464/">Требования к форме квалифицированного сертификата ключа проверки электронной подписи </a></p>]]></description>
			<author><![CDATA[null@example.com (Павел Анфимов)]]></author>
			<pubDate>Tue, 11 Aug 2020 08:04:45 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/14658/#p14658</guid>
		</item>
		<item>
			<title><![CDATA[Запрос на сертификат]]></title>
			<link>https://forum.rutoken.ru/post/14656/#p14656</link>
			<description><![CDATA[<p>Добрый день. Пытаюсь освоиться с C_EX_CreateCSR. Среди всего прочего ее аргументом является список расширений. В примере из SDK указаны строки вида<br />&quot;ASN1:FORMAT:HEX,OCTETSTRING:FE117B93CEC6B5065E1613E155D3A9CA597C0F81&quot;<br />&quot;DER:30:0F:81:0D:65:78:61:6d:70:6c:65:40:79:61:2E:72:75&quot;<br />&quot;critical,DER:30:0A:30:08:06:06:2A:85:03:64:71:01&quot;<br />&quot;ASN1:UTF8String:СКЗИ \\\&quot;Рутокен ЭЦП 2.0\\\&quot;&quot;</p><p>Подскажите, пожалуйста, где найти общие правила конструирования таких строк? Может ли быть, напимер, critical,ASN1..., DER:ASN1... или еще что? Как какую либо описанную в ASN1 структуру транслировать в такую строку?</p><p>Спасибо</p>]]></description>
			<author><![CDATA[null@example.com (Влaдимиp)]]></author>
			<pubDate>Mon, 10 Aug 2020 13:56:48 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/14656/#p14656</guid>
		</item>
	</channel>
</rss>
