首页 > 其他分享 >【Azure Key Vault】客户端获取Key Vault机密信息全部失败问题分析

【Azure Key Vault】客户端获取Key Vault机密信息全部失败问题分析

时间:2023-12-05 20:33:41浏览次数:32  
标签:机密信息 netty java Key AbstractChannelHandlerContext io Vault channel

问题描述

在应用中获取存储在Azure Key Vault的机密信息,全部失败。

报错日志内容如下:

[reactor-http-epoll-4] [reactor.netty.http.client.HttpClientConnect] 
[WARN] - [c7a7d27e, L:/xxx.xxx.xxx.60:58756 ! R:xxxxxxxxxxxx.vault.azure.cn/xxx.xxx.xxx.xxx:443] The connection observed an error java.nio.channels.ClosedChannelException at io.netty.handler.ssl.SslHandler.channelInactive(SslHandler.java:1067) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:305) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:281) at io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:274) at io.netty.channel.DefaultChannelPipeline$HeadContext.channelInactive(DefaultChannelPipeline.java:1405) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:301) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:281) at io.netty.channel.DefaultChannelPipeline.fireChannelInactive(DefaultChannelPipeline.java:901) at io.netty.channel.AbstractChannel$AbstractUnsafe$7.run(AbstractChannel.java:813) at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174) at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167) at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470) at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:403) at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) at java.lang.Thread.run(Thread.java:748) Suppressed: io.netty.handler.ssl.StacklessSSLHandshakeException: Connection closed while SSL/TLS handshake was in progress at io.netty.handler.ssl.SslHandler.channelInactive(Unknown Source)

 

问题排查

第一:进入Azure Key Vault门户页面,查看Key Vault的Secret信息是否能正常显示,以及从门户上是否可以正常获取到信息

 

第二:使用nslookup 或者 curl来测试Key Vault是否能正常在客户端解析

测试DNS解析,以及测试TCP连接:

curl -v https://xxxxxxxxxxxx.vault.azure.cn

 

第三:抓取客户端的网络包,从网络包中检查是否是 TLS Version的问题引起。

tcpdump -i any host <key vault ip address> and tcp port 443 -n -v -s 0 -w /tmp/keyvaultnetworktrace.pcap   

如在下图的网络包中,使用TLS 1.0,但Azure Key Vault 要求使用TLS 1.2. (Preparing for TLS 1.2 in Microsoft Azure  : https://azure.microsoft.com/en-us/updates/azuretls12/)

 

第四:查看客户端环境中是否有防火墙限制,可以查看是否有 Denied or  Threat 记录

 

根据以上四步,基本可以定位出 Connection closed while SSL/TLS handshake was in progress 问题。 

 

标签:机密信息,netty,java,Key,AbstractChannelHandlerContext,io,Vault,channel
From: https://www.cnblogs.com/lulight/p/17878110.html

相关文章

  • Django中ForeignKey函数详解
    在Django中,ForeignKey是一个数据库模型字段,用于创建多对一(many-to-one)的关系。它实质上是数据库表之间的一个链接,指向另一个模型的实例。在Django的ORM(对象关系映射)系统中,ForeignKey字段非常重要,因为它允许模型间的数据关联和交互。基本用法在Django模型中定义ForeignKey......
  • js 监听回车按键,keyCode已经废弃
    window.addEventListener("keydown",enterUp);//点击回车键登录constenterUp=(e:any)=>{console.log("inenterup:",e);if(e.keyCode==13||e.keyCode==100){submitForm();}};监听回车,为什么keycode会自增使用了keyCode属性来获取按键的键码,但是需要注意......
  • Linux Magic System Request Key Hacks (翻译 by chatgpt)
    原文:https://www.kernel.org/doc/html/latest/admin-guide/sysrq.htmlWhatisthemagicSysRqkey?什么是魔术SysRq键?Itisa'magical'keycomboyoucanhitwhichthekernelwillrespondtoregardlessofwhateverelseitisdoing,unlessitiscompletely......
  • keydb 6.3.4 发布
    就在10月底keydb发布了6.3.4,fix部分不少,同时添加了一些新功能,比如keydb_modstatsd统计信息支持keydbflash目前还属于beta状态,同时添加了一些新配置,核心还是fix参考资料https://github.com/Snapchat/KeyDB/releases/tag/v6.3.4https://docs.keydb.dev/docs/flash/......
  • 在redis中,如何在创建key的同时,设置key的过期时间
    1、通过下面的创建key,同时设置过期时间SETkeyvalueEXseconds 示例:setteskey01123ex60  设置key的过期时间是60s,这样在创建的时候,就开始倒计时了。 通过工具看,TTL,会定期的刷新,到0之后,这个key就会被删除了。 60s后,key不存在  如果一个key的TTL......
  • jmeter 分布式压测出现 :java.io.FileNotFoundException: rmi_keystore.jks (系统找不
    分布式执行压测时报错:Exceptioncreatingconnectionto:10.22.133.117;nestedexceptionis:java.io.FileNotFoundException:rmi_keystore.jks(系统找不到指定的文件。)解决方案:(执行机和被执行机器的jmeter版本要一致)1、修改jmeter.properties文件(jmeter的安装bin路......
  • vue Vite3出现错误runtime-core.esm-bundler.js:6835 Uncaught TypeError: normalize
    原因是在引入Element-Plus的顺序在vue之前导致,重新调整下他们的顺序后,问题解决。importAppfrom'./App.vue'import{setupI18n}from'/@/i18n'import{setupRouter}from'/@/router'import{setupStore}from'/@/store'importbusfrom'/@......
  • Donkey code
    Refhttps://einarwh.wordpress.com/2017/01/21/donkey-code/......
  • GitHub 添加 SSH key 详细步骤
    查看git上ConnectingtoGitHubwithSSH的文档后,解决方案如下:检查SSHkeys打开终端输入ls~/.ssh来查看SSHkeys是否存在.$ls-al~/.ssh#Liststhefilesinyour.sshdirectory,iftheyexist查看文件夹,是否你已经拥有一个publicSSHkey.通常GitHub......
  • 如何获取multimap内key为i的所有value
    //测试如何获取multimap内key为i的所有valuevoidgetKey(multimap<int,string>&m1,inti){ cout<<"map容器内Key为"<<i<<"的数据有:"<<endl; multimap<int,string>::const_iteratorit2=m1.find(i); for(multimap&......