...
При использовании активного ключевого носителя необходимо средствами токена создать ключевую пару (закрытый и открытый ключи) на токене, средствами ОС создать сертификат клиента с помощью открытого ключа, подписать сертификат клиента в УЦ, а затем записать сертификат клиента на токен.
На клиентском узле в домашнем каталоге пользователя:
- Подключить ключевой носитель к клиентскому узлу.
- Создать на токене ключевую пару:
гдеCommand p11tool --login --generate-rsa --bits=<длина_ключа> --id=<идентификатор_ключевой_пары> --label="<метка_ключевой_пары>"
- <длина_ключа> – длина создаваемых ключей в битах.
Если токен поддерживает, то задать 4096 бит. Иначе задать максимально возможную длину ключей, поддерживаемую токеном;
- <идентификатор_ключевой_пары> – с этим идентификатором ключи будут храниться на токене;
- <метка_ключевой_пары> – с этим названием ключи будут храниться на токене. - Создать запрос на подписание клиентского сертификата
client1.cert.csr:
гдеCommand openssl req -new -engine pkcs11 -keyform engine -out client1.cert.csr \
-key pkcs11:id="%<идентификатор_ключевой_пары>" \
-subj "/CN=<IP-адрес_клиента>" -addext "subjectAltName=IP.1:<IP-адрес_клиента>"
- <идентификатор_ключевой_пары> – идентификатор, указанный при создании ключевой пары;
- <IP-адрес_клиента> – IP-адрес клиентского узла. - Отправить файл с запросом
client1.cert.csrна узел УЦ.
...
- Подписать запрос
client1.cert.csrс помощью сертификата УЦ и сохранить подписанный сертификат клиентаclient1.cert.pemв каталоге/etc/ipsec.d/certs/:Command sudo pki --issue --lifetime 3650 --cacert /etc/ipsec.d/cacerts/ca.cert.pem --cakey /etc/ipsec.d/private/ca.key.pem \
--in client1.cert.csr --type pkcs10 --flag clientAuth --outform pem \
| sudo tee /etc/ipsec.d/certs/client1.cert.pem - Скопировать сертификат клиента
client1.cert.pemна клиентский узел в домашний каталог пользователя.
На клиентском узле в домашнем каталоге пользователя:
- Записать на ключевой носитель сертификат клиента:
гдеCommand p11tool --login --write --load-certificate="<путь_к_клиентскому_сертификату>" --id=<идентификатор_ключевой_пары> --label="<метка_ключевой_пары>"
- <идентификатор_ключевой_пары> – идентификатор, использованный при создании ключей;
- <метка_ключевой_пары> – название, использованное при создании ключей.
Пример команд:Command p11tool --login --write --load-certificate="client1.cert.pem" --id=45 --label="mykey"
...