Получить информацию об отпечатке пальца файла сертификации

Есть ли способ получить информацию об отпечатках пальцев из файла сертификации? Например, у меня есть свой certRSA.cert, и если я открою его в Windows 7, мы сможем увидеть всю информацию о сертификате (алгоритм, эмитент, субъект, срок действия, открытый ключ, использование ключа, FINGERPRINT...). В Java у меня есть сертификат в качестве объекта Java (x509Certificate):

X509Certificate certRSA = X509Certificate.getInstance(CertRSA_data);

И тогда, например, мы можем получить открытый ключ:

PublicKey pubKeyUser = certRSA.getPublicKey();

Код, представленный выше ZZ Coder ( Как получить / вычислить отпечаток сертификата X509 в Java?) Действительно хорош, но он рассчитывает отпечаток пальца, и я хочу получить эту информацию (так же, как мы можем получить информацию с открытым ключом, или эмитент или другие предметы) сертификата, а не рассчитать его. Есть какой-либо способ сделать это?? Любой комментарий с благодарностью. Спасибо.

1 ответ

Решение

я хочу получить эту информацию (так же, как мы можем получить информацию об открытом ключе или об эмитенте или других элементах) сертификата, а не рассчитать ее.

Причина, по которой вы не можете получить отпечаток пальца, как вы можете получить открытый ключ или издателя, заключается в том, что отпечаток пальца не похож на эти значения, он не является частью сертификата. Открытый ключ и эмитент являются его частью и, следовательно, просто должны быть считаны из сертификата, но отпечаток пальца не является его частью и, следовательно, должен быть рассчитан.

Представление сертификатов Microsoft немного вводит в заблуждение, поскольку представляет отпечаток, как если бы он содержался в сертификате, но на самом деле Microsoft также должна рассчитать отпечаток. Это особенно вводит в заблуждение, потому что сертификат на самом деле имеет много отпечатков пальцев, и Microsoft отображает только тот отпечаток, который, по-видимому, он использует внутри, т.е. отпечаток SHA-1.

Другие вопросы по тегам