用OpenSSL创建CA和签发证书,转换成java可以加载的jks

本文介绍了如何使用OpenSSL创建CA根证书,然后签发服务器和浏览器证书,并将这些证书转换为Java Key Store (JKS)格式。详细步骤包括生成私钥、请求证书、签发证书、转换格式以及导入到JKS中。同时提供了ImportKey.java源码用于将证书导入JKS。
摘要由CSDN通过智能技术生成

java的keytool工具本来就可以生成交互式认证的证书, 不过其他语言处理交互式认证的流程貌似和java的keytool的认证流程有些差别,  而openssl是比较通用的工具。大部分语言都会支持openssl生成的证书文件。用openssl签发的证书如何才能转化为keytool的jks文件呢,  就需要用到 ImportKey.java 文件的源码来处理了。


 - CAserial 指明序列号文件,而 - CAcreateserial 指明文件不存在时自动生成

 所有证书的Common Name 也就是CN不能重复



----------------------------------START--------------------------------
CA根证书
openssl genrsa -out ca.key 2048
openssl req -x509 -new -nodes -key ca.key -subj "/CN=ABC" -days 36500 -out ca.crt
openssl pkcs12 -export -clcerts -in ./ca.crt -inkey ca.key -out ca.p12

服务器端:
openssl genrsa -out Xserver.key 2048
openssl req -new -key Xserver.key -subj "/CN=DEF" -out Xserver.csr
openssl x509 -req -days 36500 -in Xserver.csr -CA ca.crt -CAkey ca.key -CAcreateserial  -out Xserver.crt

cp  Xserver.key  Xserver.key.pem
cp  Xserver.crt  Xserver.crt.pem

openssl pkcs8 -topk8 -nocrypt -in Xserver.key.pem -inform PEM -out Xserver.key.der -outform DER
openssl x509 -in Xserver.crt.pem -inform PEM -out Xserver.crt.der -outform DER

生成 jks文件给java程序使用
java -jar  OpenSSL2JKS.jar  Xserver.key.der   Xserver.crt.der  123456  ./server.keystore server_jks

创建信任列表
keytool -import -v -alias rootca -keystore ./serverTrust.jks -storepass 123456  -trustcacerts -file ./ca.crt
keytool -import -v -alias server -keystore ./serverTrust.jks -storepass 123456  -trustcacerts -file ./client.services-ca.pem

生成浏览器证书
openssl genrsa -out XBrowser.key 2048
openssl req -new -key XBrowser.key -subj "/CN=XXX" -out XBrowser.csr
openssl x509 -req -days 36500 -in XBrowser.csr -CA ca.crt -CAkey ca.key -CAcreateserial  -out XBrowser.crt

把浏览器证书转化为PKCS12格式
openssl pkcs12 -export -clcerts -in ./XBrowser.crt -inkey XBrowser.key -out XBrowser.p12

用openssl自带的工具进行测试
openssl s_client -connect www.tesladevel.com:9999 -cert ./XBrowser.crt -key ./XBrowser.key  -tls1 -CAfile ./ca.crt  -state -showcerts
------------------------------------------END--------------------------------------------------



上面用到的  OpenSSL2JKS.jar , 其实是  ImportKey.java 文件

下载地址如下:

www.agentbob.info/agentbob/80/version/default/part/AttachmentData/data/ImportKey.java


我把这个文件的源码贴出来:


                
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

langeldep

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值