Java中从X.509 openssl证书中提取sha1
我必须编写 X.509 openssl 证书解析器的 Java 实现,但我有一个问题:我不知道如何获取 sha1 来验证证书。 谁能帮助我理解我应该做什么?我知道Java中有一个方法getTBSCertificate()
,但我必须为了我的目的重写它。
I must write a Java implementation of an X.509 openssl certificate parser, but I have a problem: I do not know how to get the sha1 for the validation of certificates.
Can anyone help me to understand what I should do? I know that there is a method getTBSCertificate()
in Java, but I have to rewrite it for my purpose.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
假设您指的是 sha1,它通常在浏览器和操作系统工具中显示为“指纹”——您需要 1) 作为 DER 的原始证书;然后 2) sha1 和 3) 将其转换为通常的两位数十六进制/冒号分隔的字符串。
对于1; java.security.cert.Certificate 中的 getEncoded() 可以帮助您实现这一点。
至于2:MessageDigest有这个功能。
至于3:我会把它留给你:)
应该可以解决问题。此输出与 java keytool 的输出匹配。
深度。
Assuming you mean the sha1 which is commonly shown as the 'fingerprint' in the browsers and OS tools -- you need 1) the raw cert as DER; and then 2) sha1 it and 3) translate that to the usual double-digit-hex/colon separated string.
As to 1; getEncoded() from java.security.cert.Certificate gets you that.
As to 2: MessageDigest has that function.
As to 3: I'll leave that to you :)
should do the trick. This output matches that of the java keytool.
Dw.