OpenVPN клиент зависает / не запрашивает PIN-код от Рутокена
Warning | ||
---|---|---|
| ||
При попытке подключения к OpenVPN серверу через linux клиент с ключами на Рутокен ЭЦП процесс подключения зависает и не пытается спросить PIN-код от Рутокена. |
Info | ||
---|---|---|
| ||
Проблема в библиотеке libpkcs11-helper которая, будучи вызвана в дочернем процессе (fork), дважды вызывает функцию C_Initialize и плохо обрабатывает ошибку CKR_CRYPTOKI_ALREADY_INITIALIZED Проявление (имитация поведения):
|
Tip | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Пересборка библиотеки libpkcs11-helper с флагами --disable-threading и --disable-slotevent и подмена системной библиотеки libpkcs11-helper Пошаговое решение на примере Ubuntu Linux 32 bitПодготовка окруженияУстановите набор пакетов необходимых для сборки:
Загрузите исходные коды pkcs11-helper:
Сборка пакетаСоздаем пакет с библиотекой из исходных кодов.
В процессе chekinstall, измените Name на pkcs11-helper, а Version на 1.21 ПроверкаТеперь, когда библиотека собрана, нужно подложить ее вместо системной. Проверим, что она находится в папке /usr/local/lib
Если |
...
библиотека libpkcs11-helper.so находится - значит сборка и установка пакета были успешно завершены. Для начала сохраним системную библиотеку под другим именем:
Внимание! |
...
Если вы используете 64-битную версию ОС Ubuntu, то вместо /usr/lib/i386-linux-gnu используйте /usr/lib/x86_64-linux-gnu Копируем новую библиотеку вместо старой.
Также будет не лишним переделать символическую ссылку
Внимание! Если вы используете 64-битную версию ОС Ubuntu, то вместо /usr/lib/i386-linux-gnu используйте /usr/lib/x86_64-linux-gnu Теперь можно посмотреть что в системной папке все в порядке
Перезапустите openvpn клиент и теперь процесс подключения к серверу запросит PIN-код и, если все остальные настройки в порядке, подключится к серверу ОчисткаПосле сборки и установки пакета можно удалить исходные коды pkcs11-helper. Для удаления собранного пакета из системы по каким-либо причинам выполните:
или воспользуйтесь вашим стандартным менеджером пакетов, например, Synaptic. |