You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 08:06:04