HTTPS相关知识以及在golang中的应用

Posted hsnblog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTTPS相关知识以及在golang中的应用相关的知识,希望对你有一定的参考价值。

最近简单学习了HTTPS,并在golang中实践了一下,现在把学到的知识记录下来,方便以后查看,如果有幸能帮到有需要的人就更好了,如果有错误欢迎留言指出。

  • 一些简单的概念,可以自行百度百科
  1. HTTPS简介:HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。
  2. HTTPS与HTTP的区别:HTTP是以明文的方式来传递数据的,HTTPS是在HTTP的基础上加入了SSL协议的加密传输方式。
  3. CA(Certificate Authority):ca就是我们所说的证书颁发机构,ca是可信的权威机构,其实就是个办证的,给他钱,他给我们办证,当然了办的都是真证。ca机构也是有证书的,我们的电脑中自带了很多ca机构的证书,这些证书被称为“根证书”,根证书的作用就是检查别人的证是不是合法的。系统中的根证书如图:技术分享图片
  4. 服务端证书:在使用https时,服务端要载入服务端证书服务端私钥,这里涉及到一些非对称加密的知识(简单讲,非对称加密就是有两个钥匙,公钥和私钥,用公钥加密用私钥解密,这样会安全一些,比如说,客户端要向服务器传消息,可以给服务器一个请求,拿到服务器的公钥,用服务器的公钥把数据加密,加密后的数据传给服务器,服务器收到之后用服务器端的私钥解密,拿到数据,非对称开销大,不适合大数据量传输)可以自行搜索学习一下。服务端证书就是上面提到的办证(CA)的给你办的证,你得有这个证,人家才觉得你这人靠谱,证书中呢有一些信息,例如服务端公钥,谁给你办的证(CA的签名
  5. 服务端私钥:这就是解密一些客户端发到服务器来的前置数据所用的私钥。

客户端和服务器通信时二者需要的数据:

技术分享图片

 

客户端和服务器通信的流程:

技术分享图片

在golang中的使用:

 

以上是关于HTTPS相关知识以及在golang中的应用的主要内容,如果未能解决你的问题,请参考以下文章

golang 面经积累

Golang相关资源整理

存储相关知识

HTTP协议知多少-关于http1.xhttp2SPDY的相关知识

HTTP协议知多少-关于http1.xhttp2SPDY的相关知识

Linux线程操作以及相关知识