Java Keytool生成数字证书(*.cer/*.p12)文件
常用的证书管理工具有两个:KeyTool,OpenSSL;记录一下如何使用jdk自带的keytool来创建p12文件
- 命令行创建:
## storepass keystore 文件存储密码,不加这个参数会在后面要求你输入密码
## keypass 私钥加解密密码
## alias 实体别名(包括证书私钥)
## dname 证书个人信息
## keyalg 采用公钥算法,默认是DSA,这里采用RSA
## keysize 密钥长度(DSA算法对应的默认算法是sha1withDSA,不支持2048长度,此时需指定RSA)
## validity 有效期
## keystore 指定keystore文件储存位置
keytool -genkeypair -alias serverkey -keypass 111111 -storepass 111111 -dname "CN=Xu,OU=S,O=P,L=ShangHai, ST=ShangHai,C=CN" -keyalg RSA -keysize 2048 -validity 3650 -keystore D:\tmp\server.keystore
- 查看存储库详情:
keytool -v -list -keystore D:\tmp\server.keystore
- 导出本地证书(.cer):
## export 表示证书导出操作
## keystore 指定秘钥库文件
## file 指定导出文件路径
## storepass 输入密码
## rfc 指定以Base64编码格式输出
keytool -exportcert -keystore p12test.keystore -file p12test.cer -alias serverkey
- 打印数字证书:
Keytool -printcert -file p12test.cer
- 将.cer格式的证书转换为p12证书:
## 无密码
keytool -importkeystore -srckeystore p12test.keystore -destkeystore p12test.p12 -srcalias serverkey -destalias serverkey -srcstoretype jks -deststoretype pkcs12 -noprompt
## 有密码
keytool -importkeystore -srckeystore D:\keystore\server.keystore -destkeystore D:\keystore\server.p12 -srcalias serverkey -destalias serverkey -srcstoretype jks -deststoretype pkcs12 -srcstorepass 111111 -deststorepass 111111 -noprompt
- P12生成证书:
keytool -genkey -v -alias client -keyalg RSA-storetype PKCS12 -keystore p12test.p12
- P12导出证书:
keytool -export -alias client -keystore D:\tmp\server.p12 -storetype PKCS12 -storepass 111111 -rfc -file D:\tmp\server.cer