内容简介:此篇文章主要介绍https用Golang生成证书和Golang实现https认证的过程,至于ssl/tls相关的知识点,我在文章末尾会附上我个人觉得对读者有用的文章。客户点包含ca.crt,服务端包含server.key和server.crt;客户端:客户端生成一个随机数random-client,传到服务器端;
此篇文章主要介绍https用Golang生成证书和Golang实现https认证的过程,至于ssl/tls相关的知识点,我在文章末尾会附上我个人觉得对读者有用的文章。
单向验证过程:
客户点包含ca.crt,服务端包含server.key和server.crt;
客户端:客户端生成一个随机数random-client,传到服务器端;
服务端:服务器端接收消息之后,生成一个随机数random-server和包含公钥的证书,一起回馈给客户端;
客户端:客户端收到的东西原封不动,加上premaster secret(通过random-client、random-server 经过一定算法生成的数据),再一次送给服务器端,这次传过去的东西是经过服务端的公钥进行加密后数据;
服务端:服务端经过私钥(server.key),进行解密,获取 premaster secret(协商密钥过程);
此时客户端和服务器端都拥有了三个要素:random-client、random-server和premaster secret,安全通道已经建立,以后的交流都会校检上面的三个要素通过算法算出的session key;而双向认证过程相当于客户端和服务端反过来再执行认证、加解密、协商一遍。
证书生成方式:
1. openssl工具生成:
第一步,生成ca密钥和ca证书
openssl genrsa -out ca.key 2048 # 添加 -subj 是为了省去创建请求之后的交互 openssl req -new nodes -key ca.key -subj "//CN=nzh.com" -days 5000 -out ca.crt
第二步,生成server密钥和证书
openssl genrsa -out server.key 2048 # //CN必须添加,服务端的域名,或者hosts文件中ip的别名,等同于localhost openssl req -new -key server.key -subj "//CN=server" -out server.csr openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 5000
第三步,生成client密钥和证书
openssl genrsa -out client.key 2048 openssl req -new -key server.key -subj "//CN=client" -out client.csr echo extendedkeyUsage=clientAuth > ./extfile.cnf openssl x509 -req -in client.csr -CA ca.crt -CAkey ca.key -CAcreateserial -extfile ./extfile.cnf -out client.crt -days 5000
2. Golang代码生成:
第一步,生成证书之前,先构造出证书结构体,并初始化相应的参数;
构造证书请求结构体
第二步,进行证书签名,如果不是CA证书,则加载待签名的证书;
加载待签名证书
第三步,进行证书签名,图中46行和49行主要区别生成CA自签名证书还是生成CA证书签名;
证书签名过程
最后生成证书目录结构如下:
证书目录结构
Golang代码实现双向认证过程:
服务器端:
双向认证过程中,只要结构体实现了ServeHTTP结构就相当于实现一个handler;
加载服务端的公钥和私钥用于解密客户端发送过来的随机字符;
加载CA证书是为了验证客户端的证书是否合格;
服务端代码
客户端:
客户端公钥,私钥和CA证书处理等同于服务端证书处理,然后发送请求,打印返回值;
客户端代码
后续会继续补充curl命令以及整个实现源码。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- NodeJS Https HSM双向认证实现
- ldap之tls 双向认证要我命
- 技术讨论 | 看我如何突破iOS APP双向证书认证防护
- 基于Let’s Encrypt证书实现nginx https双向认证
- Nginx ssl自签名证书双向认证以及Golang https client访问
- Golang TLS双向身份认证DoS漏洞分析(CVE-2018-16875)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
About Face 3
Alan Cooper、Robert Reimann、David Cronin / John Wiley & Sons / 2007-5-15 / GBP 28.99
* The return of the authoritative bestseller includes all new content relevant to the popularization of how About Face maintains its relevance to new Web technologies such as AJAX and mobile platforms......一起来看看 《About Face 3》 这本书的介绍吧!
XML、JSON 在线转换
在线XML、JSON转换工具
HEX HSV 转换工具
HEX HSV 互换工具