| ||||||
|
НазначениеУтилита request_tool предназначена для создания заверенных CMC (в том числе с вложенным CRMF) запросов, отправки их в удостоверяющий центр и получения ответа. Утилита может использоваться для создания большого количества запросов на выдачу сертификатов, из уже существующих баз с информацией о субъектах доступа в автоматизированных системах, а также других видов CMC запросов. Запрос создается из шаблона в формате XML, который является легко создаваемым и редактируемым, и может быть подготовлен программно из уже имеющихся данных, что обеспечивает большую гибкость и экономию ресурсов при интеграции данной утилиты с уже действующими программными комплексами. Ключи командной строки.Утилита командной строки request_tool имеет встроенную систему подсказок доступную по:
request_tool --h[elp] (для основных параметров) и
request_tool -cmd <cmd_name> --h[elp] (для команды из списка доступных)
или вызов утилиты без ключей.
Usage: request_tool [common parameters] [-cmd <cmd_name> [cmd_parameters] ]
Common parameters:
-pin: defines pkcs#11-token user's PIN
Задает пользовательский пин для PKCS11 токена
-home: path to request_tool certificate storage (default ./)
Путь к хранилищу сертификатов. По умолчанию это текущая директория.
-setpin: used to set new user PIN (on initialized token)
Новый пин для PKCS11 токена. Обязательно в соченании с
(-pin "старый PIN")
-init: -init <initial PIN>: used to initialize new PKCS#11-token
Инициализация PKCS11 токена.
-slotlist: list of slots in tokens
Список слотов во всех токенах.
-slot: select slot number
Выбор основного слота.
-te: codepage/encoding for text output
(win, dos, koi, utf8, ucs2, ucs4)
Кодировка для текстовых данных (win, dos, koi, utf8, ucs2, ucs4)
-tf: format for text output (plain, xml)
Формат текстовых данных (plain, xml)
-l: language for text output (ru, eng) (default eng)
Язык сообщений (ru, eng) (по умолчанию eng)
-crl: CRL file, PEM-format, optional, enables CRL-usage
(default NULL) file-path form or HTTP-URL form can be used.
Example "http://ca.adam.ru/crl_list.pem"
Файл с CRL в формате pem. Может быть указан как URL.
-crl-cache: crl-cache path, optional, enables CRL-usage
(default NULL, example /etc/crl_cache )
Путь к CRL-кэшу.
-crl-force-deltas: optional, if set validation process
will fail if delta-crl informaion is unavailble
Указывает на необходимость наличия дельта-CRL для успешной проверки.
-ldap: LDAP-server DNS-name, optional, set to enable automatic
CRL retrival and certificate-chain composition (default NULL)
LDAP сервер для автоматического обновления CRL и
построения цепочек при проверке сертификатов.
Availible commands:
После указания основных параметров можно указать команду из списка
в виде: -cmd имя_команды. Далее приводится список доступных команд.
cert: import certificate files (PEM/DER/P7B),
list installed certs
установка сертификатов в токен (PEM/DER/P7B),
а также список установленных сертификатов.
p12: pkcs#12 import
Импорт pkcs#12 сертификатов.
text: ASN1 -> text converter for
{ Certificate | CRL | PKCS#10 certificate request
| PKCS#7/CMS ContentInfo }
преобразование ASN.1 в текст или XML документ для указанных типов
cmc: Managment Messages over CMS
Создание и отправка CMC запросов.
params: put parameters to token
Установка параметров в токен.
Работа с программой.После установки программы необходимо выбрать путь для хранилища и создать там директорию atoken. Дальнейшая последовательность действий следующая:
# mkdir /etc/certificates # cd /etc/certificates # mkdir atoken # request_tool -init my_pin # request_tool -pin my_pin -cmd params -in <path to my parameter> # request_tool -pin my_pin -cmd cert -in <path to my cert> # request_tool -pin my_pin -cmd p12 \ -in <path to my personal cert> -passwd <my passwd> После выполнения этих операций утилита готова к работе. Для создания и отправки запросов необходимо проделать следующее:
Для создания запроса необходимо вызвать request_tool со следующими ключами: # request_tool ... -cmd cmc -in <file with tmplt> \ -passwd <passwd> -pec <pec> -req <file to write request> Здесь <file with tmplt> файл с шаблоном запроса в формате XML, <file to write request> файл для записи запроса, <passwd> пароль для контейнера PKCS#12, <pec> файл с сертификатом для шифрования пароля в формате pem. Для отправки запроса необходимо выполнить следующую команду: # request_tool ... -cmd cmc -req <file with req> -host <host> \ -url <URL> [-port <port> ] [-tls] [-cmc <file to res<] \ [-text <textual res>] [-p12 <p12>] Здесь <file with req> - файл с запросом, полученным на предыдущем шаге, <file to res> - файл для записи ответа от сервера, <textual res< - файл для записи ответа от сервера в текстовом виде, <p12> - файл для записи сертификата в формате контейнера PKCS#12, <host> - доменное имя УЦ, <URL> - URL для отправки запроса, <port> - номер порта, ключ tls указывает, что для отправки сообщения будет использован протокол TLS (HTTPS). Если указан параметр p12, то будет выведено сообщение о статусе выполнения. Если статус Waiting (запрос не был обработан в режиме on-line), для получения ответа на отработанный запрос необходимо послать тот же запрос через некоторое время. Создание шаблона запроса.При создании запроса, используется шаблон CMC запроса в формате XML. Ниже описаны основные поля этого шаблона и представлен пример шаблона запроса на создание сертификата.
<?xml version="1.0" encoding="KOI8-R"?>
<CertRequest>
<RequestId>
0
</RequestId>
<CertifiateTemplate>
<Issuer>
<DistinguishedName>
<RelativeDistinguishedName>
<AttributeTypeAndValue>
<AttributeType>
2.5.4.6
</AttributeType>
<CountryName>
RU
</CountryName>
</AttributeTypeAndValue>
</RelativeDistinguishedName>
<RelativeDistinguishedName>
<AttributeTypeAndValue>
<AttributeType>
2.5.4.8
</AttributeType>
<StateOrProvinceName>
<UTF8String>
MSK
</UTF8String>
</StateOrProvinceName>
</AttributeTypeAndValue>
</RelativeDistinguishedName>
<RelativeDistinguishedName>
<AttributeTypeAndValue>
<AttributeType>
2.5.4.7
</AttributeType>
<LocalityName>
<UTF8String>
МОСКВА
</UTF8String>
</LocalityName>
</AttributeTypeAndValue>
</RelativeDistinguishedName>
<RelativeDistinguishedName>
<AttributeTypeAndValue>
<AttributeType>
2.5.4.10
</AttributeType>
<OrganizationName>
<UTF8String>
ООО Новый Адам
</UTF8String>
</OrganizationName>
</AttributeTypeAndValue>
</RelativeDistinguishedName>
<RelativeDistinguishedName>
<AttributeTypeAndValue>
<AttributeType>
2.5.4.11
</AttributeType>
<OrganizationalUnitName>
<UTF8String>
Удостоверяющий Центр и дополнительные сервисы
</UTF8String>
</OrganizationalUnitName>
</AttributeTypeAndValue>
</RelativeDistinguishedName>
<RelativeDistinguishedName>
<AttributeTypeAndValue>
<AttributeType>
2.5.4.3
</AttributeType>
<CommonName>
<UTF8String>
ТЕСТОВЫЙ УДОСТОВЕРЯЮЩИЙ ЦЕНТР
</UTF8String>
</CommonName>
</AttributeTypeAndValue>
</RelativeDistinguishedName>
</DistinguishedName>
</Issuer>
<Validity>
<NotBefore>
<UTCTime>
28.6.2004 7:53:34 UTC
</UTCTime>
</NotBefore>
<NotAfter>
<UTCTime>
28.6.2005 7:53:34 UTC
</UTCTime>
</NotAfter>
</Validity>
<Subject>
<DistinguishedName>
<RelativeDistinguishedName>
<AttributeTypeAndValue>
<AttributeType>
2.5.4.6
</AttributeType>
<CountryName>
RU
</CountryName>
</AttributeTypeAndValue>
</RelativeDistinguishedName>
<RelativeDistinguishedName>
<AttributeTypeAndValue>
<AttributeType>
2.5.4.8
</AttributeType>
<StateOrProvinceName>
<UTF8String>
MSK
</UTF8String>
</StateOrProvinceName>
</AttributeTypeAndValue>
</RelativeDistinguishedName>
<RelativeDistinguishedName>
<AttributeTypeAndValue>
<AttributeType>
2.5.4.7
</AttributeType>
<LocalityName>
<UTF8String>
MOSCOW
</UTF8String>
</LocalityName>
</AttributeTypeAndValue>
</RelativeDistinguishedName>
<RelativeDistinguishedName>
<AttributeTypeAndValue>
<AttributeType>
2.5.4.10
</AttributeType>
<OrganizationName>
<UTF8String>
XXXX
</UTF8String>
</OrganizationName>
</AttributeTypeAndValue>
</RelativeDistinguishedName>
<RelativeDistinguishedName>
<AttributeTypeAndValue>
<AttributeType>
2.5.4.11
</AttributeType>
<OrganizationalUnitName>
<UTF8String>
Old
</UTF8String>
</OrganizationalUnitName>
</AttributeTypeAndValue>
</RelativeDistinguishedName>
<RelativeDistinguishedName>
<AttributeTypeAndValue>
<AttributeType>
2.5.4.3
</AttributeType>
<CommonName>
<UTF8String>
Last Test Of Test 4 (TLS)
</UTF8String>
</CommonName>
</AttributeTypeAndValue>
</RelativeDistinguishedName>
</DistinguishedName>
</Subject>
<PublicKey>
<PublicKeyAlgorithm>
<AlgId>
1.2.643.2.2.20
</AlgId>
<gostR3410_CryptoPro>
<OBJECT_IDENTIFIER>
1.2.643.2.2.33.1
</OBJECT_IDENTIFIER>
<OBJECT_IDENTIFIER>
1.2.643.2.2.30.1
</OBJECT_IDENTIFIER>
</gostR3410_CryptoPro>
</PublicKeyAlgorithm>
<SubjectPublicKey>
0
</SubjectPublicKey>
</PublicKey>
<Extensions>
<Extension>
<ExtensionType>
2.5.29.15
</ExtensionType>
<Critical>
{TRUE}
</Critical>
<extValue>
<KeyUsage>
11000000
</KeyUsage>
</extValue>
</Extension>
<Extension>
<ExtensionType>
2.5.29.37
</ExtensionType>
<Critical>
{TRUE}
</Critical>
<extValue>
<ExtKeyUsage>
<ClientAuth>
1.3.6.1.5.5.7.3.2
</ClientAuth>
<EmailProtection>
1.3.6.1.5.5.7.3.4
</EmailProtection>
</ExtKeyUsage>
</extValue>
</Extension>
</Extensions>
</CertifiateTemplate>
</CertRequest>
Другие варианты запросов могут быть получены следующим образом: в абонентском пункте КЦ "AKey PRO" необходимо создать интересующий Вас запрос, и сохранить его без отправки на сервер. Далее преобразовать его в XML с помощью команды: # request_tool -tf xml -cmd text -in <файл с запросом> -out template.xmlВ полученном файле необходимо найти тег <CertificateTemplate> и удалить все теги вне него. Далее CertificateTemplate переименовывается в CertTemplate. В результате получим шаблон запроса для request_tool. Пример создания сертификата с использованием утилиты request_tool:
|
|
|||||||||||||||||||