Способ отозвать сертификат пользователя Easy-RSA при отсутствующем или поврежденном файле самого сертификата
Revoke Easy-RSA certificate without .crt file
При попытке выпустить сертификат скрипт выдает следующее:
Certificate is to be certified until Jul 13 11:57:53 2016 GMT (365 days) failed to update database TXT_DB error number 2 Easy-RSA error: signing failed (openssl output above may have more detail)
Ошибка связана с уже имеющимся CommonName
сертификата и создать одноименный нельзя пока старый не будет отозван. Тут два варианта - или использовать другое имя, или отзывать старый сертификат. По политике сверху, имя ключа (пользователя) менять нельзя, поэтому надо отзывать.
Обычно отозвать проблем нет, делается это командой ./easyrsa revoke UserName
, но при ее выполнении сам файл сертификата не найден или поврежден:
./easyrsa revoke UserName Note: using Easy-RSA configuration from: ./vars Easy-RSA error: Unable to revoke as the input file is not a valid certificate. Unexpected input in file: /home/ca/easy-rsa-master/easyrsa3/pki/issued/UserName.crt
В моем случае по чьему-то распиздяйству какой-то причине файла сертификата не было. Средствами самого easyrsa отозвать сертификат невозможно.
Выхода из положения два:
1. Только в качестве временного варианта - позволить создавать сертификаты с одинаковыми CommonName
. Для этого отредактировать файл index.txt.attr,
заменив значение уникальности имени с yes на no:
mcedit /home/ca/easy-rsa-master/easyrsa3/pki/index.txt.attr unique_subject = no
Решение рабочее, но пользоваться им постоянно не безопасно. К тому же, будет легко запутаться в выданных сертификатах, если их количество велико.
2. Более предпочтительным решением является редактирование файла базы сертификатов index.txt
, который выглядит следующим образом:
V 141203091049Z 03 unknown /CN=UserName R 150301095139Z 141202085814Z 04 unknown /CN=UserName2
Где первый столбец говорит о валидности сертификата (V-valid, R-revoked), второй о дате его истечения, третий о дате отзыва (если был отозван), четвертый - серийный номер сертификата. 150301095139Z читается как 15- год, 03- месяц, 01- день, 09- час, 51- минута, 39- секунда, Z- хрен его знает что она значит, но присутствует в каждом указании даты.
Для отзыва необходимо отредактировать строку с нужным пользователем. Видно, что изменился статус валидности и добавилась дата отзыва:
R 141203091049Z 150714010101Z 03 unknown /CN=UserName
На всякий случай обновить базу ключей:
./easyrsa update-db
Теперь можно создавать сертификаты для пользователя UserName.