1、生成ca证书、服务端公钥、服务端私钥

1、openssl genrsa -out ca.key 2048

2、openssl req -x509 -new -nodes -key ca.key -subj "/CN=192.168.1.106" -days 5000 -out ca.crt

3、openssl genrsa -out server.key 2048

4、openssl req -new -key server.key -subj "/CN=192.168.1.106" -out server.csr

5、echo subjectAltName = IP:192.168.1.106 > extfile.cnf

6、openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -extfile extfile.cnf -out server.crt -days 5000

2、server端

package mainimport ("fmt""net/http"
)func handler(w http.ResponseWriter, r *http.Request) {fmt.Fprintf(w, "Hi, This is an example of http service in golang!")
}func handler2(w http.ResponseWriter, r *http.Request) {fmt.Fprintf(w,"Hi, This is an example of http service in golang2222!")
}func main() {http.HandleFunc("/h2", handler2)http.HandleFunc("/", handler)http.ListenAndServeTLS(":8081","./server/server.crt","./server/server.key",nil)
}

3、client端

package mainimport ("crypto/tls""crypto/x509""fmt""io/ioutil""net/http"
)func main() {pool := x509.NewCertPool()caCertPath := "ca.crt"caCrt, err := ioutil.ReadFile(caCertPath)if err != nil {fmt.Println("ReadFile err:", err)return}pool.AppendCertsFromPEM(caCrt)tr := &http.Transport{TLSClientConfig: &tls.Config{RootCAs: pool,},DisableCompression: true,}client := &http.Client{Transport: tr}resp, err := client.Get("https://192.168.1.106:8081")if err != nil {fmt.Println("Get error:", err)return}defer resp.Body.Close()body, err := ioutil.ReadAll(resp.Body)fmt.Println(string(body))
}

golang https服务相关推荐

  1. 如何在golang http服务端程序中读取2次Request Body?(转)

    转自知乎:如何在golang http服务端程序中读取2次Request Body? - 知乎 提问: 在golang http服务端程序中,我想在真正处理Request Body之前将Body中的内 ...

  2. 一个人写一个集群:基于GRPC的golang微服务框架iogo(grpc/protobuf/etcd/freetoo/码客 卢益贵)

    一个人写一个集群:基于GRPC的golang微服务框架iogo keyword:iogo,golang,grpc,protobuf,etcd,zookeeper,microservice,distri ...

  3. Golang微服务教程

    转自:https://segmentfault.com/a/1190000015135650?utm_campaign=studygolang.com&utm_medium=studygola ...

  4. EasyDSS高性能RTMP、HLS(m3u8)、HTTP-FLV、RTSP流媒体服务器启用https服务申请免费证书...

    背景分析 目前想在 web 上使用 HTTPS 的话, 你需要获得一个证书文件, 该证书由一个受浏览器信任的公司所签署. 一旦你获得了它, 你就在你的 web 服务器上指定其所在的位置, 以及与你关联 ...

  5. 关于NodeJS配置HTTPS服务、阿里云申请HTTPS证书

    最新一直在折腾小程序 我是前后台一起做,前台不必说是微信的小程序,后端的用的是NODEJS. 所以就说一下NODEJS如何配置HTTPS服务 我的NODE用的是Express框架 直接上代码: 最重要 ...

  6. rhel5.5_Apache配置openssl支持https服务

    <rhel5.5_Apache配置openssl支持https服务> 1:切换到openssl证书目录: # cd /etc/pki/tls/certs 2:创建私钥: # make se ...

  7. 基于Nginx的https服务

    1.HTTPS协议的实现 1.为什么需要HTTPS? 原因:HTTP不安全 1.传输数据被中间人盗用.信息泄露 2.数据内容劫持.篡改 对传输内容进行加密以及身份验证 2.对称加密 非对称加密 3.H ...

  8. .Net Core和Jexus配置HTTPS服务

    花了几天时间,看了好多篇博客,终于搞定了网站的HTTPS服务,借此写篇博客,来让有需要的朋友少走弯路. 一.环境介绍 1.Linux下在Docker容器中部署好了一个网站,该网站需要通过外部提供程序访 ...

  9. 基于openssl的https服务的配置

    openssl实现私有CA,并配置基于openssl的https服务的配置,原理如下图 在CA服务器上实现私有CA步骤如下: 1.生成一对密钥 2.生成自签证书 基本的配置如下代码; [root@CA ...

最新文章

  1. mysql galera_(十六)MySQL集群galera实现
  2. 手势模型和Angular Material的实现
  3. (C++)函数参数传递中的一级指针和二级指针
  4. 详细说明 SourceTree 免登录,跳过初始设置的方法(Windows 版 )
  5. spark学习-51-Spark的task任务的运行
  6. 使用ldconfig命令将/usr/local/lib加入到默认库
  7. 如何区分PLC输入是源型输入还是漏型输入?
  8. 福利 | 2018 年,程序员全新的技术之路
  9. sizeof,终极无惑(上)
  10. python 66:re正则表达式5(全- tcy)
  11. OSDI 2022 Roller 论文解读
  12. GIS应用水平考试2009年度第一次全国统一考试
  13. php 验证 手机号码
  14. 易语言修改IP和DNS
  15. 双开助手多开分身版 v5.1.8
  16. 向Hexo博客添加微博秀(pug模板)
  17. 苹果支付验证回执单相关错误码
  18. 【算法学习笔记】64. 枚举法 SJTU OJ 1381 畅畅的牙签
  19. 对计算机网络看法500字,500字信息技术学习评价
  20. 智慧楼宇篇 3 —— 室内定位技术(三) - UWB室内定位技术

热门文章

  1. CentOS主要镜像文件类型介绍
  2. 漫话电子配线架的定义
  3. sql脚本自动完成数据库创建、切换、建表、数据初始化
  4. 【Node】nvm 版本管理工具
  5. 一个用Dijkstra算法实现的路由算法的java程序——9 图信息文件示例
  6. as400 编程语言c,AS400开发入门.doc
  7. Xwings操作Excel常用帮助功能
  8. autojs清空日志
  9. 看看别人是怎么面试蚂蚁金服的!社招Java面经分享
  10. opencv之Mat 矩阵的创建