登录
首页 >  Golang >  Go问答

golang中的tls.Config.VerifyPeerCertificate是否允许绕过默认检查?

来源:stackoverflow

时间:2024-02-06 09:30:23 449浏览 收藏

本篇文章主要是结合我之前面试的各种经历和实战开发中遇到的问题解决经验整理的,希望这篇《golang中的tls.Config.VerifyPeerCertificate是否允许绕过默认检查?》对你有很大帮助!欢迎收藏,分享给更多的需要的朋友学习~

问题内容

我想实施更严格的检查,只允许证书中包含少数常用名称。

我正在查看此提交 https://go-review.googlesource.com/c/go/+/26654/4/src/crypto/tls/handshake_client.go#310

在我看来,verifyPeerCertificate 只是增强了证书验证过程,而不是绕过现有检查并仅依赖于自定义实现。

这样的理解对吗?我确实在堆栈溢出上看到了截然不同的答案


正确答案


documentation 清楚地描述了该行为。引用:

因此,除非 InsecureSkipVerify 为 true(见下文),否则它将以正常方式验证证书。如果此内置验证失败,它将失败,即在这种情况下甚至不调用 VerifyPeerCertificate。这意味着 VerifyPeerCertificate 无法覆盖内置验证以使其通过,但它可以向证书添加额外的约束并覆盖内置验证的肯定结果使其失败。

因此,当 InsecureSkipVerify 为 true 时,则 VerifyPeerCertificate 单独负责验证,没有内置验证将会完成。

到这里,我们也就讲完了《golang中的tls.Config.VerifyPeerCertificate是否允许绕过默认检查?》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>