springcloud-stream-kafka使用ssl认证公网连接阿里云消息队列kafka
开始先吐槽一下阿里的文档,给了个示例是java版的,我用的springcloud-stream-kafka,根本找不到怎么配置,跟了一天的源码有没找到在哪配置这个玩意,网上的复制粘贴的一大堆,我特么寻思你们都好使吗就在那搬啊
然后阿里文档翻了半天,发现了一个各个版本的demo
然后点进spring里看页不对,然后又百度有谷歌又是StackOverflow的,最后发现了这个demo下面还有一行字
醉了
然后我就下载这个源码想吧他的代码替换成我的配置然后试一下
源码是这样的
首先是这个文件
这里面配置了loginModule,指定了由哪个实现取登录,下面是阿里云给你的账号密码,然后在启动时取这个配置,这部分应该是
SASL登录方式
kafka的登录方式有这些,官网截的图
我寻思直接用这个SASL登录不就完了?然后直接运行,啥反应没有,直接卡死然后报超时错误
他这个读取配置文件的方式我还是第一次用,不知道什么原理也不知道kafka怎么能取到,于是我想换一种方式
我寻思kafka自己的配置文件里肯定有吧?于是找
KafkaBinderConfigurationProperties
想看看这个里面都有哪些属性,然后我就直接赋值,更恶心的来了,这个配置文件里关键配置全是map,根本不知道都能配置啥玩意,然后发现控制台打印的东西是这样的
然后我就找这个包,啥也没有,又回去找上面的文件
然后发现了这么个东西,看起来有点那意思
点进class里看是这样的
三个属性,是不是跟刚才的demo里的conf很像,于是我配置了一个
果然,启动的时候换了一个错
Authentication failed due to invalid credentials with brokers older than 1.0.0
醉了看一下阿里控制台,0.10的版本,还不能直接用SASL方式认证,没办法把SSL也加上呗
于是按照demo的配了一下SSL
这里面需要下载一个证书,我在这里下载的
地址配置
ssl.truststore.location
这里写classpath不行,运行的时候找不到,只能是D:\\***.jks或者是/home/kafka这种的
然后下边有个密码,我就醉了,你这也没写我密码是哪来的,我怎么知道密码,控制台找了半天也没有
我特么寻思是不是不能下载他的证书啊
于是我就自己生成证书,生了一堆,全特么是告诉我握手失败,好像自己生成也不对
我又换回官网下的证书,密码是什么玩意呢,难不成密码就是demo里的密码吧
复制过来重启项目,又换了个错,日了村里最野的狗了,还真是demo里的密码
这回的错误Caused是这样的
No subject alternative names present
然后参考了https://www.cnblogs.com/moonciki/p/11640883.html
最后成了