Есть ли способ занести в черный список сертификат на стороне клиента, выданный определенному user?
В настоящее время у меня есть случай, когда несколько злоумышленников имеют сертификаты на стороне клиента моего веб-сайта, и я не знаю, как помешать им его использовать.
В настоящее время я запускаю Apache2
на компьютере с CentOS, но при необходимости могу перейти на NGINX
.
Попросите ЦС, выдавший сертификат, отозвать его. ЦС (должен )регулярно выпускать Список отозванных сертификатов(CRL ), который, по сути, представляет собой черный -список сертификатов, которые любая проверяющая сторона (вашего сервера Apache в этом случае )не следует доверять.
Вы можете проверить, выдает ли ваш ЦС CRL, выполнив поиск расширения CRL Distribution Point:
$ openssl x509 -noout -text -in example.crt | grep -A1 "Full Name"
Full Name:
URI:http://pki.example.test/cdp/example-CA.crl
По URL-адресу проверяющая сторона может загрузить CRL.
В качестве альтернативы ЦС может использовать OCSP для распространения информации об отзыве. Это более сложная система, в которой проверяющая сторона -запрашивает у ответчика статус отзыва конкретного сертификата. Вы можете найти это, используя:
$ openssl x509 -noout -text -in example.crt | grep "OCSP"
OCSP - URI:http://ocsp.example.test
Это URL-адрес ответчика OCSP.
Если вы не видите ни того, ни другого, значит ЦС не выдает информацию об отзыве и вам, скорее всего, не повезло.
Однако у Apache есть параметр SSLCARevocationFile , который может указывать на CRL, загруженный каким-либо альтернативным методом. В маловероятном случае, если ЦС генерирует CRL, но не распространяет их ни одним из вышеперечисленных способов, а желает, например, отправить их вам по электронной почте; вы можете сохранить это на сервере и указать на него Apache с помощью этой опции. Маловероятно, я бы предположил.