内容简介:任何机构或者个人都可以申请数字证书,并使用由CA机构颁发的数字证书为自己的应用保驾护航。常用的两个证书管理工具:KeyTool,OpenSSL--->构建CSR(Certificate Signing Request,数字证书签发申请),交由CA机构签发,形成最终的数字证书。 最近用到p12文件,就记录一下如何使用jdk自带的keytool来创建p12文件1.打开cmd,切换到jdk的bin目录下2.输入命令
任何机构或者个人都可以申请数字证书,并使用由CA机构颁发的数字证书为自己的应用保驾护航。常用的两个证书管理工具:KeyTool,OpenSSL--->构建CSR(Certificate Signing Request,数字证书签发申请),交由CA机构签发,形成最终的数字证书。 最近用到p12文件,就记录一下如何使用jdk自带的keytool来创建p12文件
创建私钥和证书
1.打开cmd,切换到jdk的bin目录下
2.输入命令
keytool -genkeypair -alias serverkey -keyalg RSA -keysize 2048 -validity 3650 -keystore C:\Users\i343740\Desktop\p12test.keystore 复制代码
参数解释: storepass keystore 文件存储密码,不加这个参数会在后面要求你输入密码 keypass 私钥加解密密码 alias 实体别名(包括证书私钥) dname 证书个人信息 keyalg 采用公钥算法,默认是DSA,这里采用RSA keysize 密钥长度(DSA算法对应的默认算法是sha1withDSA,不支持2048长度,此时需指定RSA) validity 有效期 keystore 指定keystore文件储存位置
3.命令行会要求你输入一些信息,这里只是试用,随意输一些就可以了
What is your first and last name? [Unknown]: xu What is the name of your organizational unit? [Unknown]: SAP What is the name of your organization? [Unknown]: SAP What is the name of your City or Locality? [Unknown]: ShangHai What is the name of your State or Province? [Unknown]: ShangHai What is the two-letter country code for this unit? [Unknown]: CN Is CN=xu, OU=SAP, O=SAP, L=ShangHai, ST=ShangHai, C=CN correct? [no]: Y 复制代码
4.最后一行: 输入的密钥口令,这里因为我们在上面设置了一个密钥库的口令,因此这里的口令如果和上面设置的口令一样的话,就直接回车就好,如果两个口令不一样,那么我们可以输入新的口令,回车
5.经过上述操作,秘钥库中已经创建了数字证书(没有经过CA认证),但不影响我们使用。我们可以将数字证书导出,发送给合作伙伴进行加密交互。
查看keystore详情
1.输入命令
keytool -v -list -keystore C:\Users\i343740\Desktop\p12test.keystore 复制代码
可以看到keystore详情:
Keystore type: jks Keystore provider: SUN Your keystore contains 1 entry Alias name: serverkey Creation date: Sep 18, 2018 Entry type: PrivateKeyEntry Certificate chain length: 1 Certificate[1]: Owner: CN=xu, OU=SAP, O=SAP, L=ShangHai, ST=ShangHai, C=CN Issuer: CN=xu, OU=SAP, O=SAP, L=ShangHai, ST=ShangHai, C=CN Serial number: 68a01736 Valid from: Tue Sep 18 15:29:16 CST 2018 until: Fri Sep 15 15:29:16 CST 2028 Certificate fingerprints: MD5: 6D:02:83:77:1D:8F:80:4A:7E:71:10:E5:D1:F7:DA:A1 SHA1: 50:A7:46:DE:BC:9E:0E:22:AC:AD:85:63:3D:29:FB:FF:75:66:55:3E SHA256: 78:C4:65:71:A2:54:2B:56:2E:7B:8F:16:7D:EB:53:46:4E:9C:0C:AF:55:F8:3E:0C:37:FC:CD:A6:8C:04:9E:84 Signature algorithm name: SHA256withRSA Subject Public Key Algorithm: 2048-bit RSA key Version: 3 ......(还有一些) 复制代码
导出本地证书(.cer)
1.输入命令
keytool -exportcert -keystore C:\Users\i343740\Desktop\p12test.keystore -file C:\Users\i343740\Desktop\p12test.cer -alias serverkey 复制代码
参数解释: -export 表示证书导出操作 -keystore 指定秘钥库文件 -file 指定导出文件路径 -storepass 输入密码 -rfc 指定以Base64编码格式输出
打印数字证书
1.输入命令
Keytool -printcert -file C:\Users\i343740\Desktop\p12test.cer 复制代码
将.cer格式的证书转换为p12证书
1.输入命令
keytool -importkeystore -srckeystore C:\Users\i343740\Desktop\p12test.keystore -destkeystore C:\Users\i343740\Desktop\p12test.p12 -srcalias serverkey -destalias serverkey -srcstoretype jks -deststoretype pkcs12 -noprompt 复制代码
2.输入目标密钥库口令和源密钥库口令即可(目标密钥库口令指的是我们要为.p12证书设置的口令,而源密钥库口令则指的是我们最初为.cer证书设置的密钥库口令)
P12的两个命令:
生成证书:
keytool -genkey -v -alias client -keyalg RSA-storetype PKCS12 -keystore C:\Users\i343740\Desktop\p12test.p12 复制代码
导出证书:
keytool -export -alias client -keystore C:\Users\i343740\Desktop\p12test.p12-storetype PKCS12 -storepass 123456 -rfc -file C:\Users\i343740\Desktop\p12test.cer 复制代码
以上所述就是小编给大家介绍的《Java Keytool生成数字证书/.cer/.p12文件》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
产品心经:产品经理应该知道的60件事(第2版)
闫荣 / 机械工业出版社 / 2016-4 / 69.00
本书第一版出版后广获好评,应广大读者要求,作者把自己在实践中新近总结的10个关于产品的最佳实践融入到了这本新书中。这"10件事"侧重于深挖产品需求和产品疯传背后的秘密,配合之前的"50件事",不仅能帮产品经理打造出让用户尖叫并疯传的产品,还能帮助产品经理迅速全方位提升自己的能力。 本书作者有超过10年的产品工作经验,在互联网产品领域公认的大咖,这本书从产品经理核心素养、产品认知、战略与规划、......一起来看看 《产品心经:产品经理应该知道的60件事(第2版)》 这本书的介绍吧!