七叶笔记 » golang编程 » golang请求https跳过证书验证及获取证书信息

golang请求https跳过证书验证及获取证书信息

大家都知道在golang中发起普通的http请求是很简单的,使用http包的包级函数即可,例如:

发起普通请求

那如果要发起https的请求呢?怎么跳过tls握手阶段里的证书校验呢?

方法1

https请求跳过证书校验

即将http Client的Transport里的 TLSClientConfig 结构体字段 InsecureSkipVerify 设为true,当然,这里小编为了简单起见直接修改http包的默认http Client了。

方法2

https请求证书校验处理

这次依然设置 TLSClientConfig 结构体的字段,不过改为 VerifyPeerCertificate 了,这是一个函数,用来做证书校验的,在函数里什么也不做直接返回nil就相当于跳过证书校验了。

获取服务器返回的证书信息

注意上面的方法2,最好看看文档里的说明,VerifyPeerCertificate函数的第一个参数是服务器返回的证书数据,用 x509.ParseCertificate 函数可以获取证书信息:

获取证书有效期

示例只是输出证书的有效期,实际上证书的完整信息都可以拿到的,将以上代码稍加修改就能用到自己的项目了。

小编举例时用的golang版本为 1.11 哦。

相关文章