linux java 导入证书_ubuntu下 将证书导入java的cacerts证书库

本文详细介绍了在Ubuntu系统中,如何将自签名证书导入Java的cacerts证书库,包括生成证书、导出证书和导入证书的完整过程。涉及到的命令包括keytool的genkey、exportcert和import等。
摘要由CSDN通过智能技术生成

首先,说下java的cacerts证书库: JAVA_HOME目录下的jre的cacerts

主要的步骤有4个:

生成证书

导出证书

导入证书

生成证书(此处CN的值为localhost或者你想设置的域名,而 cas.example.org 是我想通过https访问的域名)

keytool -genkey -alias cas -keyalg RSA -keysize 2048 -keypass changeit -storepass changeit -keystore /etc/cas/thekeystore -dname "CN=cas.example.org,OU=duodian.com,O=duodian,L=Beijing,ST=BeiJing,C=CN"Warning:

JKS 密钥库使用专用格式。建议使用"keytool -importkeystore -srckeystore /etc/cas/thekeystore -destkeystore /etc/cas/thekeystore -deststoretype pkcs12" 迁移到行业标准格式 PKCS12。

解释: 在 /etc/cas 目录下,生成名为 thekeystore 的密钥库, changeit 分别为密钥口令和密钥库口令, 别名为 cas .

han@ubuntu:/etc/cas$ lscas.cer config logs services-repo thekeystore

我们发现,在 /etc/cas 目录下已经生成 名为的 thekeystore 的证书.接下来我们导出证书

han@ubuntu:/etc/cas$ keytool -exportcert -alias cas -keystore ./thekeystore -file ./cas.cer -storepass changeit

存储在文件中的证书

Warning:

JKS 密钥库使用专用格式。建议使用"keytool -importkeystore -srckeystore /etc/cas/thekeystore -destkeystore /etc/cas/thekeystore -deststoretype pkcs12" 迁移到行业标准格式 PKCS12。

解释: 将 thekeystore 导出为 cas.cer, 路径就是当前路径 /etc/cas

导入证书 cas.cer 到java的证书库中

han@ubuntu:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/security$ sudo keytool -import -alias cas -keystore ./cacerts -file /etc/cas/cas.cer

[sudo] han 的密码:

输入密钥库口令:

所有者: CN=cas.example.org, OU=duodian.com, O=duodian, L=Beijing, ST=BeiJing, C=CN

发布者: CN=cas.example.org, OU=duodian.com, O=duodian, L=Beijing, ST=BeiJing, C=CN

序列号: 41739b25

有效期为 Mon Sep17 11:44:09 CST 2018 至 Sun Dec 16 11:44:09 CST 2018证书指纹:

MD5: F1:71:28:50:AF:2F:1C:56:8D:0F:E9:28:42:DD:F8:B7

SHA1: D0:3D:16:A9:64:E8:FA:9D:23:DD:33:0E:E5:4A:16:59:7D:1A:C9:AC

SHA256:32:77:83:7C:10:1D:DA:72:FA:20:DF:D9:68:CF:B9:B6:6C:05:4E:76:FA:CC:A4:CC:AE:D3:B7:F4:3E:6D:F9:7A

签名算法名称: SHA256withRSA

主体公共密钥算法:2048位 RSA 密钥

版本:3扩展:

#1: ObjectId: 2.5.29.14 Criticality=falseSubjectKeyIdentifier [

KeyIdentifier [0000: D4 8C E9 3B 1D 4D CF 7D 44 4C 46 0E F7 B3 6D 21 ...;.M..DLF...m!

0010: 0C E3 C8 F2 ....

]

]

是否信任此证书?[否]: 是

证书已添加到密钥库中

解释:将上一步导出的cas.cer导入到java的证书库(即下图的 cascerts )中

han@ubuntu:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/security$ lsblacklisted.certs cacerts java.policy java.security nss.cfg policy

到此为止,将证书导入到java证书库的流程就算走完了...下边说下流程之外相关的东西:

注意, cascerts 不是个文件夹:

han@ubuntu:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/security$ cd cacerts

bash: cd: cacerts: 不是目录

查看你导入java证书库的证书(通过别名 alias )

han@ubuntu:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/security$ keytool -list -keystore ./cacerts -alias cas

输入密钥库口令:

cas,2018-9-17, trustedCertEntry,

证书指纹 (SHA1): D0:3D:16:A9:64:E8:FA:9D:23:DD:33:0E:E5:4A:16:59:7D:1A:C9:AC

删除你导入java证书库的证书(通过别名 alias ),我项目中

han@ubuntu:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/security$ sudo keytool -delete -alias cas -keystore ./cacerts

[sudo] han 的密码:

输入密钥库口令:

查看是否删除成功(提示别名 cas 不存在,说明删除删除成功)

han@ubuntu:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/security$ keytool -list -keystore cacerts -alias cas

输入密钥库口令:

keytool 错误: java.lang.Exception: 别名 不存在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值