keytool命令
往密钥库文件中添加密钥(或者生成密钥库文件)
keytool -genkey -alias 密钥条目别名 -keystore 密钥库文件(一般.jks后缀)
例子:向client.jks密钥库文件中添加别名为client的密钥,如果没有该文件,自动创建之
keytool -genkey -alias client -keystore client.jks
查看密钥库文件内容
keytool -printcert -keystore 密钥库文件
从密钥库导出密钥为证书
keytool -export -alias 密钥库中的条目别名 -keystore 密钥库文件 -file 导出证书名称.cer
例子:将密钥库client.jks中别名为client的密钥导出为client.cer证书文件
keytool -export -alias client -keystore client.jks -file client.cer
打印证书内容
keytool -printcert -file 证书文件
导入为信任证书
keytool -import -alias 该证书在密钥库中的条目别名 -keystore 密钥库文件 -file 要信任的证书文件
例子:导入client.cer到client_trust.jks,该条目为trustedCertEntry,别名为client
keytool -import -alias client -keystore client_trust.jks -file client.cer
删除某个别名的条目
keytool -delete -keystore 密钥库文件 -alias 条目别名
命令中的参数代表意义
-keystore 后面跟密钥库文件
-file 证书文件或者输出文件名称
-alias 密钥条目
keytool原理
JKS为Java keytool密钥库专用格式
keystore密钥库内容类似于hash表,其中alias为key,密钥为value
当导入信任证书时,此条目为信任证书条目
创建的生成的密钥库为私钥条目