首页 > 代码库 > 使用keytool 生成证书
使用keytool 生成证书
keytool 工具介绍
keytool 是java 用于管理密钥和证书的工具,其功能包括:
1 创建并管理密钥
2 创建并管理证书
3 作为CA 为证书授权
4 导入导出证书
keytool 采用keystore来存储密钥及证书,其中可包括私钥、信任证书;
keystore 文件使用 JKS格式,带密钥存储;其中私钥的存储也有独立的密码;
一、生成 私钥
keytool -genkey -alias serverkey -keystore server.keystore
按提示 输入keystore 存储密码、私钥密码、个人信息,之后会生成 server.keystore文件
相关参数
-keyalt RSA 采用RSA算法(默认) -storepass keystore 文件密码 -keypass 私钥密码
二、导出证书
keytool -export -keystore server.keystore -file server.cer -alias serverkey
三、导入信任证书(客户端使用)
keytool -import -keystore clientTrust.keystore -file server.cer -alias serverTrust
四、查看密钥及证书
查看server 密钥
keytool -list -keystore server.keystore
输出
Keystore type: JKSKeystore provider: SUNYour keystore contains 1 entryserverkey, Sep 25, 2016, PrivateKeyEntry,Certificate fingerprint (SHA1): 65:75:C9:08:A0:83:21:A1:D7:8D:DA:CD:3D:FB:C2:E0:50:96:29:62
查看clientTrust 密钥
keytool -list -keystore clientTrust.keystore
输出
Keystore type: JKSKeystore provider: SUNYour keystore contains 1 entryservertrust, Sep 25, 2016, trustedCertEntry,Certificate fingerprint (SHA1): 65:75:C9:08:A0:83:21:A1:D7:8D:DA:CD:3D:FB:C2:E0:50:96:29:62
加上-v选项可查看更详细信息
查看 证书
keytool -printcert -file server.cer
输出
Owner: CN=ZZ, OU=DEV, O=pp.com, L=GZ, ST=GD, C=CNIssuer: CN=ZZ, OU=DEV, O=pp.com, L=GZ, ST=GD, C=CNSerial number: 797f3140Valid from: Sun Sep 25 16:43:55 CST 2016 until: Sat Dec 24 16:43:55 CST 2016Certificate fingerprints:MD5: FB:7D:29:4C:A9:F3:07:0E:CC:74:0D:9B:D4:D6:4D:91SHA1: 65:75:C9:08:A0:83:21:A1:D7:8D:DA:CD:3D:FB:C2:E0:50:96:29:62SHA256: E9:8B:A5:43:5F:40:FA:C5:64:3B:0A:11:1D:BE:D1:07:3C:A1:E2:50:88:71:A7:5C:EC:43:22:98:1B:AA:B6:EBSignature algorithm name: SHA1withDSAVersion: 3Extensions:#1: ObjectId: 2.5.29.14 Criticality=falseSubjectKeyIdentifier [KeyIdentifier [0000: 0E C3 62 D3 75 3A 3C B7 D9 C4 BD 8E 63 E7 6C EC ..b.u:<.....c.l.0010: AF 8A 29 72 ..)r]]
五 转换命令
将 jks格式 转 pkcs
keytool -importkeystore -srckeystore me.keystore -destkeystore me.p12 -srcalias me -destalias me -srcstoretype JKS -deststoretype PKCS12
FAQ
** keytool 通用格式为 jks,如何获取私钥?**
答:通过程序读取输出;
** 如何将 jks文件转换为 pem文件,以用于nginx服务器?**
答:通常jks 文件已包含私钥、证书、CA证书信息,可通过 keytool 将jks 转为pkcs格式,再通过openssl 进行转换提取:
提取 privatekey -nodes 指示输出无加密 pem文件openssl pkcs12 -in me.p12 -nodes -nocerts -out me.key提取 证书openssl pkcs12 -in me.p12 -nodes -nokeys -clcerts -out me.crt提取 CA证书(如果自签名则为空)openssl pkcs12 -in me.p12 -nodes -nokeys -cacerts -out ca.crt
使用keytool 生成证书
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。