SSL连接过程的若干问题

在设置kafka  使用ssl  中如下的shell脚本

#!/bin/bash
#Step 1
keytool -keystore server.keystore.jks -alias localhost -validity 365 -keyalg RSA -genkey
#Step 2
openssl req -new -x509 -keyout ca-key -out ca-cert -days 365
keytool -keystore server.truststore.jks -alias CARoot -import -file ca-cert
keytool -keystore client.truststore.jks -alias CARoot -import -file ca-cert
#Step 3
keytool -keystore server.keystore.jks -alias localhost -certreq -file cert-file
openssl x509 -req -CA ca-cert -CAkey ca-key -in cert-file -out cert-signed -days 365 -CAcreateserial -passin pass:test1234
keytool -keystore server.keystore.jks -alias CARoot -import -file ca-cert
keytool -keystore server.keystore.jks -alias localhost -import -file cert-signed

 

大致意思是kafka服务端创建秘钥对,然后由CA签名,客户端服务端均信任CA,之后就可以SSL通信

 

其实这里有两个问题有所困扰

第一个问题在于客户端如果手头有若干个证书,如果挑选哪个证书,第二个就是在客户端仅有CA证书(也就是CA公钥)的情况下是如何拿到服务端公钥的。

 

所有问题可以根据如下SSL流程解答,第一个为非秘钥协商的,第二个是带有秘钥协商的

 

不带秘钥协商的

 

 

第二个是带有秘钥协商的

 

 

可以看到首先在请求服务端的SSL请求之后,服务端是发送CA证书,签发机构和自己的公钥的,这样就全部解决了上述的问题。

同样这样的过程可以防止中间人攻击。

 

就算中间人把所有公钥和证书截掉作为中间人攻击的方式,返回来的没有私钥就没有任何用。这就防止了中间人攻击

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值