Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

Все настройки в руководстве выполняются для тестового домена SMARTCARD.ALD. Примем, что сервер и клиент принадлежат домену SMARTCARD.ALD, имя сервера - kdc, а клиента - client. При настройке используйте имя вашего домена, сервера и клиента.

...

Блок кода
/etc/init.d/krb5-admin-server restart
/etc/init.d/krb5-kdc restart



Подготовка смарт-карты. Выпуск ключей и сертификата пользователя

...


Подключите устройство, которое следует подготовить.

Проверка работы Рутокен в системе

...

Примечание

путь до библиотеки librtpkcs11ecp.so может различаться

Для того чтобы определить путь до библиотеки librtpkcs11ecp.so введите команду:
$ find /usr/*(lib|lib64) -name librtpkcs11ecp.so


Инициализация устройства

...


Проинициализируйте устройство, установите PIN-код пользователя. Помните, что инициализация устройства удалит все данные на Рутокен ЭЦП без возможности восстановления.

Для инициализации необходимо воспользоваться утилитой pkcs11-tool.


Test

$ pkcs11-tool --slot 0 --init-token --so-pin 87654321 --label 'AstraLinux' --module /usr/lib/librtpkcs11ecp.so


Примечание

--slot 0 — указывает, в какой виртуальный слот подключено устройство. Как правило, это слот 0, но могут быть и другие значения - 1,2 и т.д.; 
--init-token - команда инициализации токена; 
--so-pin 0000000087654321 - PIN-код администратора Рутокен ЭЦП. По умолчанию имеет значение 87654321; 
--label 'AstraLinux' - название устройства; 
--module /usr/lib/librtpkcs11ecp.so — указывает путь до библиотеки librtpkcs11ecp.so


Image Modified

Задания PIN-кода пользователя

...


Для задания PIN-кода пользователя используйте команду:

Test

$ pkcs11$ pkcs11-tool --slot 0 --init-pin --so-pin 87654321 --login --pin 12345678 --module /usr/lib/librtpkcs11ecp.so


Примечание

--init-pin - команда установки PIN-кода пользователя; 
--login - команда входа в токен; 
--pin 12345678 - задаваемый PIN-код пользователя; 



Генерация пары ключей на Рутокен ЭЦП

...


Сгенерируйте ключи на устройстве, для этого введите следующую команду:

Test

pkcs11-tool --slot 0 --login --pin 12345678 --keypairgen --key-type rsa:2048 --id 33 --label “2fa test1 key” --module /usr/lib/librtpkcs11ecp.so


Примечание

-keypairgen --key-type rsa:2048 — указывает, что должны быть сгенерированы RSA ключи длиной 2048 бит; 
--id 42 — устанавливает атрибут CKA_ID ключа. CKA_ID может быть любым; 
--label “test1 key” — устанавливает атрибут CKA_LABEL(имя) ключа. Атрибут может быть любым; 


Генерация запроса на сертификат

...


Сгенерируйте запрос на сертификат с помощью утилиты openssl. Для этого введите следующие команды:


$ openssl

OpenSSL> engine dynamic -pre SO_PATH:/usr/lib/x86_64-linux-gnu/engines-1.1/pkcs11.so -pre ID:pkcs11 -pre LIST_ADD:1  -pre LOAD -pre MODULE_PATH:/usr/lib/librtpkcs11ecp.so

(dynamic) Dynamic engine loading support
[Success]: SO_PATH:/usr/lib/x86_64-linux-gnu/engines-1.1/pkcs11.so
[Success]: ID:pkcs11
[Success]: LIST_ADD:1
[Success]: LOAD
[Success]: MODULE_PATH:/usr/lib/librtpkcs11ecp.so
Loaded: (pkcs11) pkcs11 engine


OpenSSL> req -engine pkcs11 -new -key 0:33 -keyform engine -out client.req -subj

engine "pkcs11" set.
Enter PKCS#11 token PIN for Rutoken ECP <AstraLinux>:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:RU
State or Province Name (full name) [Some-State]:Moscow
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]: Rusbitech  
Organizational Unit Name (eg, section) []: Astra
Common Name (e.g. server FQDN or YOUR name) []:test1 (!Ваш_Пользователь!)
Email Address []:shuhrat@astralinux.ru
 
OpenSSL> exit


Примечание

-new -key 0:42, где 0— номер виртуального слота с устройством,33— атрибут CKA_ID раннее сгенерированных ключей.


Выпуск сертификата для пользователя

...


Необходимо установить переменные окружения:

Блок кода
$ export REALM=EXAMPLE.RU 
$ export CLIENT=test1 


Примечание

SMARTCARD.ALD - ваш домен

test1 - Ваш доменной пользователь



и выпустить сертификат на пользователя:

Блок кода
$ openssl x509 -CAkey cakey.pem -CA cacert.pem -req -in client.req -extensions client_cert -extfile pkinit_extensions -out client.pem -days 365


Далее перекодируйте полученный сертификат из формата PEM в формат DER. 


Блок кода
# openssl x509 -in client.pem -out client.cer -inform PEM -outform DER



Запишите полученный сертификат на токен:

Блок кода
pkcs11-tool --slot 0 --login --pin 12345678 --write-object client.cer --type 'cert' --label 'test1' --id 33 --module /usr/lib/librtpkcs11ecp.so


Примечание

--write-object ./client.cer— указывает, что необходимо записать объект и путь до него;
--type 'cert'— указывает, что тип записываемого объекта - сертификат;
'cert' --label 'test1'— устанавливает атрибут CKA_LABEL(имя) сертификата. Атрибут может быть любым;