Проверьте сертификат по хранилищу сертификатов Java через CLI - PullRequest
7 голосов
/ 13 января 2009

Как проверить сертификат X509 (или в формате DER) по хранилищу сертификатов Java через командную строку?

Я рассмотрел использование утилиты keytool, но похоже, что она обрабатывает только функции импорта / экспорта / отображения (без проверки).

РЕДАКТИРОВАТЬ: похоже, что keytool может использоваться для проверки, но только если попытка импорта. Я полагаю, что лучший способ задать этот вопрос - есть ли более пассивный подход (например, не изменять хранилище ключей). Спасибо!

Ответы [ 2 ]

13 голосов
/ 23 января 2009

Вы можете использовать keytool - export необходимые сертификаты (те, которые находятся в цепочке для того, который вам нужно проверить) из хранилища ключей Java в файлы X.509. Затем объедините их в один файл. Наконец, используйте openssl для проверки.

openssl verify -CAfile concatenated-certs.crt cert-to-verify.crt

Не идеальное решение, поскольку включает извлечение сертификатов из склада доверенных сертификатов, но оно должно работать с учетом того, с чего вы начинаете.

2 голосов
/ 14 января 2009

Эта страница может быть упрощенной:

http://java.sun.com/docs/books/tutorial/security/toolfilex/rstep1.html

Но это не похоже на то, что даже импорт с помощью keytool действительно проверяет сертификат. Я не вижу описания проверки подписи входящего сертификата по сравнению с подписью другого доверенного сертификата.

jarsigner проверит подпись на подписанном банке, но ничего не сделает для проверки подписи на сертификате, использованном для подписи банку.

Боюсь, вам придется либо написать инструмент для проверки, либо искать коммерческий инструмент, который это делает. Я думаю, что некоторые из наборов инструментов PKI будут иметь инструмент проверки сертификатов, который сделает это.

...