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

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

Ключ

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

...

Test

$ 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 

...

Блок кода
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(имя) сертификата. Атрибут может быть любым;




Настройка клиента. Проверка работоспособности

...


Создайте на клиенте каталог /etc/krb5/. Скопируйте в /etc/krb5/ сертификат CA (cacert.pem) c сервера.

Настройте kerberos в /etc/krb5.conf. Секцию [libdefaults] дополните следующими строками:

Блок кода
[libdefaults] 
default_realm = SMARTCARD.ALD
pkinit_anchors = FILE:/etc/krb5/cacert.pem
# для аутентификации по токену
pkinit_identities = PKCS11:/usr/lib/librtpkcs11ecp.so



Выполните проверку: 

Блок кода
kinit


Когда появится строка запроса PIN-кода к карте, введите его.

Для проверки того, что kerberos-тикет был успешно получен для пользователя, введите команду klist.

Для удаления тикета — kdestroy.

Для входа в домен по смарт-карте на экране входа в ОС вместо пароля введите PIN-код от смарт-карты.