Keytool命令的详细信息
What is the purpose of keystore
KeyStore是存储一组密钥(Secret Key )、密钥对(Key Pair )或证书(Certificate )的系统信息库。
键:只有一个键。 一般用于对称加密的情况。
密钥对:包含公钥(Public Key )和私钥(Private Key ),通常用于非对称加密。
KeyStore可以设置密码。 密钥、密钥对和证书在KeyStore中统称为Key,每个Key由alias (别名)来区分。 Key也可以设定密码。 Java密钥(jks )只是密钥的一种类型。 其他还有PKCS12、JCEKS等。 题外话:可以将KeyStore与数据库进行类比,设定密码
那么,Key是表。 alias是表名。 密钥、密钥对和证书对应于不同的表结构。 密钥“表”中只有一个字段。 密钥对“表”包含两个字段。 与公钥和私钥以及证书“表”一样,Key也可以设置密码。
设定密码的比喻有点勉强呢。 理解意思就好了。
实战JDK为管理这个存储库提供了keytool命令。
$ keytool密钥和证书管理工具命令: -certreq证书生成请求-changealias更改条目别名-删除条目-exportcert导出证书-genkeypair生成密钥对-genseckey生成密钥i ortcert导入证书或证书链-importpass导入密码-importkeystore从其他密钥库中导入一个或所有条目-keypasswd更改条目的密钥密码-list密钥的内容-打印certreq打印证书请求的内容-打印crl打印crl文件的内容-要更改-storepasswd密钥库的存储密码,请使用' keytool -command_name -help '命令管理
keytool -genkeypair -help
生成密钥对
keytool-genkey pair-keystore my.keystore-storepass 123456-alias my-key-keypass 654321-keysize 1024-keyalg RSA-valg
输入相关信息后,将在本地生成my.keystore资源库文件。
参数分析:
-指定-keystore:keystore的名称-指定-storepass:keystore密码-指定-alias:key的别名-指定-keypass:key密码-指定-keysize:key的位大小
查看公钥keytool-list-RFC---keystore my.keystore-storepass 123456|OpenSSL x509-inform PEM-pubkey
$ keytool-list-RFC---- keystore my.keystore-storepass 123456 | OpenSSL x509-inform PEM-pubkey---- begin public key---- MIG fma0gcsqgsib3dqebaquaa4gnadcbiqbgqcwumrlbxhcidb 1a f1 fyl srft lyp jy5qwxnrblms6mtemkjh 85 gvmglzjasuwiqosqi/TPC LG0B3 ftxpbydm4ubnosvhfc3B2 hktqidaqab---- end public key-- .证书keytool
打印证书keytool-printcert-RFC-filemy.cert
显示证书公钥keytool-printcert-RFC-filemy.cert|OpenSSL x509-inform PEM-pubkey