Проверьте сертификат по хранилищу сертификатов Java через CLI
-
22-07-2019 - |
Вопрос
Как проверить сертификат X509 (или в формате DER) в хранилище сертификатов Java через командную строку?
Я рассмотрел использование утилиты keytool
, но похоже, что она обрабатывает только функции импорта / экспорта / отображения (без проверки).
РЕДАКТИРОВАТЬ: похоже, keytool
можно использовать для проверки, но только при попытке импорта. Я полагаю, что лучший способ задать этот вопрос - есть ли более пассивный подход (например, не изменять хранилище ключей). Спасибо!
Решение
Эта страница может быть упрощенной:
http://java.sun.com/docs /books/tutorial/security/toolfilex/rstep1.html р>
Но это не похоже на то, что даже импорт с помощью keytool действительно проверяет сертификат. Я не вижу описания проверки подписи входящего сертификата по сравнению с подписью другого доверенного сертификата.
jarsigner проверит подпись на подписанном банке, но ничего не сделает для проверки подписи на сертификате, который используется для подписи банку.
Боюсь, вам придется либо написать инструмент для проверки, либо искать коммерческий инструмент, который это делает. Я думаю, что некоторые из наборов инструментов PKI будут иметь инструмент проверки сертификатов, который сделает это.
Другие советы
Вы можете использовать keytool
, чтобы экспортировать
необходимые сертификаты (те, которые находятся в цепочке для того, который нужно проверить) из хранилища ключей Java в файлы X.509 , Затем объедините их в один файл. Наконец, используйте openssl
для проверки.
openssl verify -CAfile concatenated-certs.crt cert-to-verify.crt
Не идеальное решение, поскольку оно включает извлечение сертификатов из склада доверенных сертификатов, но оно должно работать с учетом того, с чего вы начинаете.