Примечание
# opensc pcsc-lite pam_pkcs11 librtpkcs11ecp pcsc-lite-ccid libp11 nss-utils
#systemctl start pcscd#systemctl status pcscd
$ pcsc_scan -r
0: Aktiv Rutoken ECP 00 00
$ pkcs11-tool --module /usr/lib64/librtpkcs11ecp.so \
--login --pin <PIN> --keypairgen \
--key-type rsa:2048 --id 1111 --label myrsa
$ pkcs11-tool --module /usr/lib64/librtpkcs11ecp.so --list-objects
$ openssl req -new -x509 -engine pkcs11 \
-keyform engine -key 1111 -out CA.pem \
-subj "/C=RU/O=MyOrg/CN=MyToken" -text
Engine "pkcs11" set.
Enter PKCS#11 token PIN for RutokenECP:
где:
-engine pkcs11 — указывает, что используется PKCS#11 (токен);
-key 1111 — идентификатор ключа;
-subj — задаёт данные субъекта сертификата (страна, организация и т. д.).
Примечание
$ openssl engine -t pkcs11
Если движок не найден, нужно указать путь явно:
$ openssl engine -t \
-pre SO_PATH:/usr/lib64/openssl/engines-3/libpkcs11.so \
-pre MODULE_PATH:/usr/lib64/librtpkcs11ecp.so
$ openssl x509 -in CA.pem -noout -text
$ pkcs11-tool --module /usr/lib64/librtpkcs11ecp.so \
--login --pin <PIN> --write-object CA.pem \
--type cert --id 1111 --label "myrsa"
Using slot 0 with a present token (0x0)
Created certificate:
Certificate Object; type = X.509 cert
label: myrsa
subject: DN: C=RU, O=MyOrg, CN=MyToken
serial: 4EB5EB8617FA76C71B9616CEA4EBEC8BBA9D3FDF
ID: 1111