Как вставить записи в список отзыва сертификатов - PullRequest
0 голосов
/ 28 ноября 2018

У меня есть существующий CRL, который я хотел бы использовать с моим экземпляром apache через директиву SSLCARevocationPath.Чтобы проверить это и убедиться, что он работает, я хочу добавить запись в CRL для моей собственной информации о сертификате PIV.Эта запись будет выглядеть так:

Serial Number: E2C72718B5E0EXXXXXXXXXXXXXXXXXXXXXXXX
        Revocation Date: Nov 28 13:37:30 2018 GMT
        CRL entry extensions:
            X509v3 CRL Reason Code:
                Affiliation Changed

Файл CRL, который у меня есть, по сути представляет собой список записей, подобных этой.Однако я не могу найти способ просто вставить свою запись в файл, используя что-то вроде openssl, и файл не может быть отредактирован непосредственно в Notepad ++.Есть ли способ сделать это без необходимости генерировать новый CRL?

1 Ответ

0 голосов
/ 28 ноября 2018

CRL, как и сертификаты, подписаны, чтобы предотвратить подделку или фальсификацию, поэтому вы не можете «редактировать» их, вы должны сгенерировать новый - но см. Ниже.

OpenSSL командная строка может генерировать CRL только с использованием записей в «базе данных» своей собственной дешевой и веселой функции DIY CA, то есть текстового файла, обычно называемого index.txt.Поскольку сертификат, который вы хотите (и любые другие в CRL), фактически не был выдан вашим OpenSSL DIY CA, чтобы использовать его, вы должны «реконструировать» index.txt, который был бы создан, если бы вы сделали это.Для одного сертификата и при условии наличия версии 1.0.2 и подходящих настроек в вашем конфигурационном файле вы можете использовать openssl ca -valid $certfile.Более сложное решение для случая с сотнями «отсутствующих» сертификатов см. https://unix.stackexchange.com/questions/320038/easy-rsa-index-txt-serial-and-duplicates (раскрытие: частично мое)

В качестве альтернативы вы можете написать код для вызова OpenSSL library построить X509_CRL объект с нужными вам данными и подписать его.Это было бы даже по теме для SO!

Однако, чтобы CRL был действительным, он должен быть подписан тем же CA, который выдал отзыв сертификат (ов), или подчиненным сертификатом специального назначения.сам подписан этим CA.Я полагаю, что ваш сертификат PIV был выдан каким-то центром сертификации Fed-PKI, а у вас нет частного ключа этого центра сертификации.(Если это довольно серьезное нарушение безопасности, хотя и не на уровне Сноудена или OMB - возможно, в отношении Мэннинга. Или в частном секторе Эшли Мэдисон.) Поскольку вы можете изменить трастовый магазин Apache, вы можете создать собственный DIY CAиспользуя то же имя, что и реальный CA, а затем имейте доверие Apache, которое является фальшивым корнем, но тогда оно соединит (реальные) сертификаты, выданные реальным CA, с фальшивым корнем, и они не будут проверять.

Короче говоря, вы должны создать собственные тестовые данные .Создайте самодельный центр сертификации, выдайте себе сертификат (или несколько - вы можете брать с себя комиссионные так, как вам нравится, и в сети это ничего не стоит!), Пометить сертификат (ы) или некоторые из них отозванные и сгенерироватьCRL и тест с ними.

...