Java支持的keystore格式

PKCS12和JKS是keystore的格式,但是P12是不支持TrustedCertificateEntry的,如果要写入信任证书,只能使用JKS

关于KeyStore,JDK文档如下解释:

http://gceclub.sun.com.cn/Java_Docs/html/zh_CN/api/java/security/KeyStore.html

 

KeyStore 管理不同类型的项。每种类型的项都实现 KeyStore.Entry 接口。提供了三种基本的 KeyStore.Entry 实现:

  • KeyStore.PrivateKeyEntry

    此类型的项保存一个加密的 PrivateKey,可以选择以受保护格式存储该私钥来防止未授权访问。它也随附一个相应公钥的证书链。

    给定项使用私钥和证书链进行自验证 (self-authentication)。应用此验证的包括软件发布组织,它们将 JAR 文件签名为发布和/或许可软件的一部分。

  • KeyStore.SecretKeyEntry

    此类型的项保存一个加密的 SecretKey,可以选择以受保护格式存储该密钥来防止未授权访问。

  • KeyStore.TrustedCertificateEntry

    此类型的项包含一个属于另一方的单个公钥 Certificate。它被称为可信证书,因为 keystore 的所有者相信证书中的公钥确实属于由该证书的 subject(所有者)所标识的身份。

    此类型的项可以用来验证其他方。

keystore 中的每一项都用“别名”字符串标识。对于私钥和与它们相关的证书链,这些字符串用来区分实体验证自身可以采用的不同方式。例如,实体可以使用不同的证书授权或不同的公钥算法来验证本身。

在此没有指定 keystore 是否是持久性的,也没有指定 keystore 是持久性时所使用的机制。这允许使用各种技术保护敏感的(例如,私有的或秘密的)密钥。一种选择是使用智能卡或其他集成加密引擎 (SafeKeyper),也可以使用诸如文件之类的更加简单的机制(以各种格式)。

请求 KeyStore 对象的典型方式包括使用默认类型和提供一个特定的 keystore 类型。

  • 根据默认类型:
        KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());
     
    系统将返回默认类型的 keystore 实现。

  • 提供特定的 keystore 类型:
          KeyStore ks = KeyStore.getInstance("JKS");
     
    系统将返回环境中可用的指定 keystore 类型的首选实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值