keytool生成多级证书链
前言
Keytool常用命令如下
Keytool生成多级证书链
下面以生成三级证书链为例:
建立根CA
根CA实际是一张自签CA,自签CA的使用者和颁发者都是它自己。首先建立一个密钥库文件keystore.jks,并创建rootca条目。
keytool -genkeypair -alias rootca -storetype PKCS12 -keystore keystore.jks -validity 3650 -keysize 2048 -keyalg RSA -storepass 12345678
从密钥库中导出rootca的证书rootca.cer
keytool -exportcert -keystore keystore.jks -storepass 12345678 -alias rootca -file rootca.cer
建立二级CA并签发该CA证书
二级CA证书需要由根证书进行签发,首先需要使用keytool生成二级CA的证书,但是此时的证书还是张自签证书,我们需要从中生成一个二级CA的证书请求(包含了公钥),然后通过将证书请求到rootca签发我们的二级证书,然后我们在将rootca签发的二级CA证书导入到导出证书请求的秘钥库中,完成二级CA的生成。
创建subca条目并保存至keystore.jks文件中
keytool -genkeypair -alias subca -storetype PKCS12 -keystore keystore.jks -validity 3650 -keysize 2048 -keyalg RSA -storepass 12345678
查看一下subca条目信息
keytool -list -v -alias subca -keystore keystore.jks -storepass 12345678
此时该条目还是张自签证书,无法直接使用,需要用rootca来签发subca的证书
生成证书请求文件subca.csr
keytool -certreq -alias subca -keystore keystore.jks -storepass 12345678 -file subca.csr
使用subca.csr去rootca签发证书subca.cer
keytool -gencert -keystore keystore.jks -storepass 12345678 -alias rootca -infile subca.csr -outfile subca.cer
更新密钥库keystore.jks中的subca条目
keytool -importcert -file subca.cer -alias subca -keystore keystore.jks -storepass 12345678
此时再查看subca条目颁发者已经变成rootca了
keytool -list -v -alias subca -keystore keystore.jks -storepass 12345678
建立用户user并使用subca签发用户证书
由于该步骤与上一步类似,这里就不再截图了
创建user条目并保存至keystore.jks文件中
keytool -genkeypair -alias user -storetype PKCS12 -keystore keystore.jks -validity 3650 -keysize 2048 -keyalg RSA -storepass 12345678
生成证书请求文件user.csr
keytool -certreq -alias user -keystore keystore.jks -storepass 12345678 -file user.csr
使用user.csr去subca签发证书user.cer
keytool -gencert -keystore keystore.jks -storepass 12345678 -alias subca -infile user.csr -outfile user.cer
更新密钥库keystore.jks中的user条目
keytool -importcert -file user.cer -alias user -keystore keystore.jks -storepass 12345678
我们可以把rootca.cer、subca.cer、user.cer安装至本机上,然后查看user.cer,可以看到证书链结构
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具