Предполагая, что вы имеете в виду sha1, который обычно отображается как «отпечаток пальца» в браузерах и инструментах ОС - вам нужен 1) необработанный сертификат как DER; а затем 2) sha1 it и 3) перевести это в обычную строку, состоящую из двух цифр, шестнадцатеричных и двоеточий.
Что касается 1; getEncoded () из java.security.cert.Certificate получает это.
Что касается 2: MessageDigest имеет эту функцию.
Что касается 3: я оставлю это вам:)
... someFoo(X509Certificate cert) {
MessageDigest sha1 = MessageDigest.getInstance("SHA1");
System.out.println(" Subject " + cert.getSubjectDN());
System.out.println(" Issuer " + cert.getIssuerDN());
sha1.update(cert.getEncoded());
System.out.println(" sha1 " + toHexString(sha1.digest()));
System.out.println();
}
должен сделать свое дело. Этот вывод соответствует выводу Java Keytool.
Dw.