Как отозвать сертификат openssl, если у вас нет сертификата

Я сделал сертификат openssl, подписанный CA, созданным на локальном компьютере.

этот сертификат был удален, и у меня его больше нет.

невозможно создать другой сертификат с тем же общим именем, потому что openssl не позволяет этого и будет генерировать ошибку:

failed to update database
TXT_DB error number 2

Как я могу отозвать сертификат, чтобы создать другой с тем же общим именем ?

2 ответов


(исходя из Nilesh это!--10-->) в конфигурации по умолчанию, OpenSSL будет хранить копии всех подписанных сертификатов в /etc/ssl/newcerts, названный по его номеру индекс. Так что grep /etc/ssl/index.txt чтобы получить серийный номер ключа, который будет отозван, например 1013, выполните следующую команду:

openssl ca -revoke /etc/ssl/newcerts/1013.pem #replacing the serial number

The -keyfile и -cert упомянутые в ответе Нилеша требуются только в том случае, если это отклоняется от вашего openssl.cnf настройки.


вы также можете изменить /etc/ssl/index.txt.attr содержит строку

unique_subject = no

разрешить несколько сертификатов с одинаковым общим названием. Если вы опубликовали исходный сертификат, отзыв старого является предпочтительным решением, даже если вы не запускаете сервер OSCP или не предоставляете CRL.


Я не пробовал это, но, похоже, нужно что-то вроде этого.

openssl ca-отозвать bad_crt_file-keyfile ca_key-cert ca_crt

openssl автоматически сохраняет копию сертификата в каталоге newcerts. Вы можете проверить его, чтобы получить сертификат. К сожалению, вам нужен сертификат, чтобы отозвать его. Смотрите следующие детали: http://www.mad-hacking.net/documentation/linux/security/ssl-tls/revoking-certificate.xml