c++和java的双向SSL

1, 建立一个新的目录,把OPENSSL下的CA.sh和openssl.cnf copy到新目录下,然后执行
#CA.sh –newca  

cacert.pem作为根证书来使用。
2, 用openssl建立C++ client端的私钥+公钥签名:
openssl req -newkey rsa:1024 -out serverreq.pem -keyout Clientkey.pem

输入Common Name的时候最好不要和CA证书一致,这里叫的是Boris1
3, 用CA私钥为C++ client端的公钥
openssl ca –in ./demoCA/serverreq.pem –out ./demoCA/clientcert.pem

这里所生成的clientcert.pem是经过ca签名的证书。


4, 生成客户端私钥并存入osbserver.jks
keytool -genkey -alias osbserver -validity 365 -keyalg RSA -keysize 1024 -keystore osbserver.jks -keypass 123456 –storepass 123456


5, 从osbserver.jks中提取服务器端签名请求
keytool -certreq -alias osbserver -sigalg SHA1withRSA -file osbserver.csr -keypass 123456 -storepass 123456 -keystore osbserver.jks

6,用CA私钥为客户端请求签名生成服务器端证书

openssl ca -in demoCA/java/osbserver.csr -out osbserver.crt -cert demoCA/cacert.pem -keyfile demoCA/private/cakey.pem –notext

上边这行命令的执行目录自己改下。
Osbserver.crt为经过签名的服务器端证书.
7,转化服务器端证书的格式。
openssl x509 -in osbserver.crt -out osbserver.der -outform DER 

8,转化根证书的格式
openssl x509 -in cacert.pem -out cacert.der -outform DER 

9,将转化后的根证书导入到keystore
keytool -import -v -trustcacerts -alias ca_root -file ..\cacert.der -storepass 123456 -keystore osbserver.jks
10,将经过签名的服务器证书导入到服务器的keystore中。
keytool -import -v -alias osbserver -file osbserver.der -storepass 123456 -keystore osbserver.jks

11,创建一个truststore,并导入der格式的根证书
keytool -import -alias ca_root -file cacert.der -keystore osbtrust.jks

12,将c client签名后的的证书转化为der格式
openssl x509 -in clientcert.pem -out clientcert.der -outform DER

13,把c client签名后的der格式证书导入到truststore中

keytool -import -alias c_client -file ../clientcert.der -keystore osbtrust.jks


这样就完成了,C++ client需要用到的是
cacert.pem ,clientcert.pem,Clientkey.pem
osb用到的是:osbserver.jks ,osbtrust.jks


以上命令的路径应根据实际情况输入。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值