Отзыв сертификата Easy-RSA без .crt файла

Автор: Admin | 14.07.2015

Способ отозвать сертификат пользователя 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.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *