Как отозвать сертификат OpenSSL, если у вас нет сертификата - PullRequest
49 голосов
/ 29 февраля 2012

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

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

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

failed to update database
TXT_DB error number 2

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

Ответы [ 2 ]

69 голосов
/ 25 февраля 2013

(на основе ответа Нилеша ) В конфигурации по умолчанию openssl будет хранить копии всех подписанных сертификатов в /etc/ssl/newcerts, названных по его номеру индекса.Поэтому grep /etc/ssl/index.txt, чтобы получить серийный номер ключа, который нужно отозвать, например, 1013, затем выполнить следующую команду:

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

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


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

unique_subject = no

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

7 голосов
/ 01 марта 2012

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

openssl ca -revoke bad_crt_file -keyfile ca_key -cert ca_crt

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

...