Я сделал сертификат openssl, подписанный ЦС, созданным на локальной машине.
Этот сертификат был удален, и у меня его больше нет.
Невозможно создать еще один сертификат с таким же commonName, потому что openssl не позволяет это сделать и выдаст ошибку:
failed to update database
TXT_DB error number 2
Как я могу отозвать сертификат, чтобы создать еще один с тем же commonName?
Как другие ответы говорят, openssl CA обычно сохраняет копию сертификатов со знаком в подкаталоге (newcerts
или certs
, или keys
с easyrsa. Ищите new_certs_dir
определение в openssl.cnf файле Ваших полномочий или -outdir
опция в сценариях).
Таким образом, канонический способ сделать является чем-то вперед:
openssl ca -config openssl.cnf -revoke newcerts/hello-world.pem
Однако я добавляю этот ответ, чтобы отметить, что, с текущими версиями, openssl ca -revoke ...
, кажется, только обновляет index.txt
файл (он, тем не менее, попросит пароль с закрытым ключом, который подвергается сомнению там ), поэтому, если Вы действительно не имеете никакого резервного копирования сертификата, но все еще имеете index.txt
или некоторый способ получить порядковый номер, можно искать / составляют строку сертификата и изменяют его:
# before
V 291008172120Z 6DB67443D7E6C2D95D6E2F7F264C05F944964049 unknown /C=FR/CN=coucou.com
# after
R 291008172120Z 191011172218Z 6DB67443D7E6C2D95D6E2F7F264C05F944964049 unknown /C=FR/CN=coucou.com
# Format is 6 fields, tab-separated, and filename is usually 'unknown' :
# CRL doesn't contain nor need the subject so if unavailable, just make up something close
V/R/E expiration-date revocation-date serial-number filename subject
(протестированный с OpenSSL 1.1.1c. На некоторой другой версии/среде порядковый номер может быть намного короче)
Эти openssl ca -config openssl.cnf -gencrl -crldays 30 -out crl.pem
, будет фактический шаг для отмены сертификата, производя список со знаком с помощью закрытого ключа полномочий.