连接失败后获取TLS证书链

我有一个Go程序,该程序使用 tls.Server </ code>接受来自客户端的TLS连接。 当特定的客户端连接时,出现错误“ tls:无法验证客户端的证书:x509:未知授权机构签名的证书”。</ p>

我想查看证书链 提出(但无法验证)的内容,以便我可以弄清楚客户端做错了什么。 有没有一种方法可以使用Go的 tls </ code>包? 显而易见的答案-使用 ConnectionState </ code>方法-不起作用,因为 ConnectionState </ code>的 PeerCertificates </ code>字段仅在握手完成后填充 成功。</ p>
</ div>

展开原文

原文

我有一个Go程序,它使用tls.server接受来自客户端的TLS连接。当连接特定客户端时,会得到错误"tls: failed to verify client's certificate: x509: certificate signed by unknown authority".

我希望看到提供的证书链(验证失败),这样我就可以知道客户端做错了什么。有办法用Go的TLS软件包来实现吗?显而易见的答案——使用ConnectionState方法对我来说行不通,因为只有在握手成功之后才会填充ConnectionState的PeerCertifics字段。

douzhuang6321
douzhuang6321 啊,哦,很好。如果那是我要做的,我会做。谢谢!
接近 3 年之前 回复
dongxin2734
dongxin2734 如果您不能直接获得它,而这是一个一次性调试问题,我可能会直接修补x509验证方法以记录您要查找的内容。否则,没有办法使证书摆脱握手。
接近 3 年之前 回复
dsbpaqt61965
dsbpaqt61965 但是您应该能够确定它是什么客户,对吗?至少是它的IP地址?
接近 3 年之前 回复
doulou1970
doulou1970 不幸的是,仅接受客户的连接就很难弄清客户要提供的证书-它是大型复杂系统的一部分,并且这些客户连接是自动化的。
接近 3 年之前 回复
douwendu2460
douwendu2460 似乎简单地向客户要求直接提供的证书会更容易吗?该错误是非常具体的,因此我认为您只是打算以离线方式诊断问题。
接近 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐