Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents
outlinetrue
stylenone

Итак, нам Нам понадобится Rutoken ECP, отформатированный через Панель управления Рутокен. В качестве дистрибутива использовалась Ubuntu-12.10-desktop-i386. 

Общий порядок действий

1) Первым делом устанавливаем . Устанавливаем необходимые пакеты:

...

Code Block
languagebash
 $ sudo apt-get install

...

 opensc  libpam-p11 libengine-pkcs11-openssl

...

 

При Стоит отметить, что при установке opensc также устанавливаются пакеты libccid и pcscd, а при установке libpam-p11 – пакет libp11-2.

 

2) . Библиотеку librtpkcs11ecp.so помещаем в директорию /usr/lib/.

3) . Аналогично действиям в приведенной выше статье создаем файл /usr/share/pam-configs/p11, с единственным отличием – укажем путь к нашей библиотеке:

Code Block
languagebash
Name: Pam_p11

...


Default: yes

...


Priority: 800

...


Auth-Type: Primary

...


Auth: sufficient pam_p11_opensc.so /usr/lib/librtpkcs11ecp.so

 

4) . Выполняем команду:

Code Block
languagebash
$ sudo pam-auth-update

В появившемся диалоге выбираем Pam_p11.

 

5) . Переходим к созданию ключевой пары:

Code Block
languagebash
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so --keypairgen --key-type rsa:

...

2048 -l --id 45

Утилита pkcs11-tool входит в состав opensc.

Параметры, задаваемые в этой строке:

--module <arg>

...

путь к библиотеке pkcs11 (обязательный параметр)

...

--keypairgen

...

генерация ключевой пары
-- key-type <arg>

...

задает тип и длину ключа. В нашем случае тип – rsa, длина - 2048 бит (с длиной ключа 1024 бит возникают проблемы)

...

-l

...

запрос

...

PIN-кода токена

...

до каких-либо операций с ним (обязательный параметр)

...

--id <arg>

...

определяет id создаваемого объекта (понадобится при создании сертификата)

...

6) . Переходим к созданию сертификата. 

Запускаем openssl и подгружаем модуль поддержки pkcs11:

Code Block
languagebash
$ openssl

...


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

7) . Создаем сертификат в PEM-формате: OpenSSL>  req

Code Block
languagebash
 OpenSSL>  req -engine pkcs11 -new -key 0:45 -keyform engine -x509 -out cert.pem

...

  -text

Здесь:

-key

...

указывает закрытый ключ (в нашем случае 0:45 – слот:ID ключа)

...

-x509

...

 
выдает самоподписанный сертификат

...

8) Сконвертируем . Конвертируем сертификат PEM в CRT:

Code Block
languagebash
OpenSSL> x509 -in cert.pem -out cert.crt -outform DER

...

9) . Закрываем openssl. Теперь сохраняем сертификат  сертификат CRT на токенРутокен:

Code Block
languagebash
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -l -y cert -w cert.crt --id 45

Здесь параметр :

-y <arg>

...

тип объекта (может быть cert, privkey, pubkey, data)

...

-w <arg>

...

записать объект на токен

...

10) . Остается только добавить сертификат PEM в список доверенных.:

Code Block
languagebash
$ mkdir ~/.eid

...


$ chmod 0755 ~/.eid

...


$ less ~/cert.pem >> ~/.eid/authorized_certificates

...


$ chmod 0644 ~/.eid/authorized_certificates

 

11. На этом настройка закончена. После перезапуска ОС окно входа в систему будет выглядеть так: