![80a222d29cd536be555d7b4b96dd154f.png](https://img-blog.csdnimg.cn/img_convert/80a222d29cd536be555d7b4b96dd154f.png)
一、简介
Keytool是JDK自带的证书管理工具,在jdk/bin目录下,可以用来生成自签名证书、导入导出证书、打印证书信息等。
回顾下前一章的一些概念:
- PKI:公钥基础设施
- X.509 : PKI事实上的标准
- CSR:向CA申请证书的签名请求文件,用ASN.1标准描述
- 证书链:证书之间的上下级信任关系
- 根证书:证书链的最顶层
- DER:证书二进制格式
- BER:DER的一个子集
- CER:一般用于windows的证书文件格式
- CRT:一般用于Linux的证书,包含公钥和主体信息
- pem:Base64编码的DER证书
- p12:证书交换格式,把证书和密钥(公钥+私钥)打包在一起,可以再加一层保护(.pkcs12 .pfx .p12)
- JKS:Java支持的证书格式。
- BKS:安卓无法直接支持JKS,使用的是BKS类型证书。
- Keystore:Keytool将密钥和证书存在一个称为keystore的文件中,包含密钥实体和可信任的证书实体。
二、Java证书工具Keytool的使用
2.1 生成自签名证书.jks
创建一个名为myjks的证书,存放在teststore.jks的密钥库中。
keytool -genkeypair -alias myjks -keysize 2048 -keyalg RSA -validity 3650 -keystore teststore.jks -storetype JKS
- - genkeypair: 生成公私钥对条目,私钥不可见,公钥会以证书格式保存在ke