Java/Scala 如何从JKS文件中提取CN字段?
从Kafka的
keystore.jks文件提取CN字段方案 现有公开方案仅介绍了如何从X509Certificate中提取CN,未说明从JKS格式密钥库中提取的方法,以下是经过实际验证的解决方案,可直接复用减少排查时间。
实现逻辑
- 第一步读取keystore文件,将内部存储的证书转换为X509格式
- 第二步借助cryptacular库的
CertUtil.subjectCN方法快速提取CN字段
Scala实现示例
import java.io.FileInputStream import java.security.KeyStore import java.security.cert.X509Certificate import org.cryptacular.util.CertUtil object ExtractCNFromJKS { def main(args: Array[String]): Unit = { // 替换为实际的keystore路径、密码和证书别名 val keystorePath = "/path/to/your/keystore.jks" val keystorePwd = "your_keystore_password".toCharArray val certAlias = "your_cert_alias" // 加载JKS密钥库 val keyStore = KeyStore.getInstance("JKS") val fis = new FileInputStream(keystorePath) keyStore.load(fis, keystorePwd) fis.close() // 提取X509格式证书 val x509Cert = keyStore.getCertificate(certAlias).asInstanceOf[X509Certificate] // 提取CN字段 val cnValue = CertUtil.subjectCN(x509Cert) println(s"提取到的CN值:$cnValue") } }
内容的提问来源于stack exchange,提问作者moneretin
相关产品推荐
相关产品推荐

