SSL连接过程的若干问题
程序员文章站
2024-02-13 13:48:04
...
在设置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证书,签发机构和自己的公钥的,这样就全部解决了上述的问题。
同样这样的过程可以防止中间人攻击。
就算中间人把所有公钥和证书截掉作为中间人攻击的方式,返回来的没有私钥就没有任何用。这就防止了中间人攻击
上一篇: MySQLODBC创建_MySQL
下一篇: PHP中为什么很少看到用goto?
推荐阅读
-
SSL连接过程的若干问题
-
nginx在多台服务器设置SSL安装过程,包括路由,暂时没有翻译哈,大家直接看着色的部分就好了
-
MongoDB最大连接数设置失效的异常分析过程与解决方法
-
。在学习的过程中Sqlhelper类中的连接总是不正确
-
。在学习的过程中Sqlhelper类中的连接总是不正确
-
select-在两个应用,两条连接的情况下mysql存储过程是否是同步的执行的?
-
ECMall支持SSL连接邮件服务器的配置方法详解_PHP
-
TCP连接的三次握手和四次解散过程,tcp握手四次解散
-
ECMall支持SSL连接邮件服务器的配置方法详解_PHP教程
-
ECMall支持SSL连接邮件服务器的配置方法详解_php实例