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

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

时间:2023-12-05 21:00:49浏览次数:33  
标签:机密信息 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信息是否能正常显示,以及从门户上是否可以正常获取到信息

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

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

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

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

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

 

第三:抓取客户端的网络包,从网络包中检查是否是 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/)

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

 

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

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

 

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

 


当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!

标签:机密信息,netty,java,Key,AbstractChannelHandlerContext,io,Vault,channel
From: https://blog.51cto.com/u_13773780/8695725

相关文章

  • 【Azure Key Vault】客户端获取Key Vault机密信息全部失败问题分析
    问题描述在应用中获取存储在AzureKeyVault的机密信息,全部失败。报错日志内容如下:[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]Theconnecti......
  • 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......