サンプル
拇印/フィンガープリント : thumbprint/Fingerprintimport java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import javax.security.cert.CertificateEncodingException; import javax.security.cert.CertificateException; import javax.security.cert.X509Certificate; import javax.xml.bind.DatatypeConverter; public class Ssl { public static void main(String[] args) { try { X509Certificate certificate = loadCertificate("./etc/cacert.crt"); String thumbprint = getThumbprint(certificate); System.out.println("Thumbprint : " + thumbprint); System.out.println("Done..."); } catch (Exception ex) { ex.printStackTrace(); } } // 証明書ファイル→X509Certificate を変換 private static X509Certificate loadCertificate(String certificatePath) throws FileNotFoundException, IOException, CertificateException { try (FileInputStream inputStream = new FileInputStream(new File(certificatePath))) { X509Certificate returnValue = X509Certificate.getInstance(inputStream); returnValue.checkValidity(); return returnValue; } } private static String getThumbprint(X509Certificate certificate) throws NoSuchAlgorithmException, CertificateEncodingException { MessageDigest messageDigest = MessageDigest.getInstance("SHA-1"); byte[] der = certificate.getEncoded(); messageDigest.update(der); return toHex(messageDigest.digest()).toLowerCase(); } private static String toHex(byte[] byteValues) { return DatatypeConverter.printHexBinary(byteValues); } }