golang https服务
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服务相关推荐
- 如何在golang http服务端程序中读取2次Request Body?(转)
转自知乎:如何在golang http服务端程序中读取2次Request Body? - 知乎 提问: 在golang http服务端程序中,我想在真正处理Request Body之前将Body中的内 ...
- 一个人写一个集群:基于GRPC的golang微服务框架iogo(grpc/protobuf/etcd/freetoo/码客 卢益贵)
一个人写一个集群:基于GRPC的golang微服务框架iogo keyword:iogo,golang,grpc,protobuf,etcd,zookeeper,microservice,distri ...
- Golang微服务教程
转自:https://segmentfault.com/a/1190000015135650?utm_campaign=studygolang.com&utm_medium=studygola ...
- EasyDSS高性能RTMP、HLS(m3u8)、HTTP-FLV、RTSP流媒体服务器启用https服务申请免费证书...
背景分析 目前想在 web 上使用 HTTPS 的话, 你需要获得一个证书文件, 该证书由一个受浏览器信任的公司所签署. 一旦你获得了它, 你就在你的 web 服务器上指定其所在的位置, 以及与你关联 ...
- 关于NodeJS配置HTTPS服务、阿里云申请HTTPS证书
最新一直在折腾小程序 我是前后台一起做,前台不必说是微信的小程序,后端的用的是NODEJS. 所以就说一下NODEJS如何配置HTTPS服务 我的NODE用的是Express框架 直接上代码: 最重要 ...
- rhel5.5_Apache配置openssl支持https服务
<rhel5.5_Apache配置openssl支持https服务> 1:切换到openssl证书目录: # cd /etc/pki/tls/certs 2:创建私钥: # make se ...
- 基于Nginx的https服务
1.HTTPS协议的实现 1.为什么需要HTTPS? 原因:HTTP不安全 1.传输数据被中间人盗用.信息泄露 2.数据内容劫持.篡改 对传输内容进行加密以及身份验证 2.对称加密 非对称加密 3.H ...
- .Net Core和Jexus配置HTTPS服务
花了几天时间,看了好多篇博客,终于搞定了网站的HTTPS服务,借此写篇博客,来让有需要的朋友少走弯路. 一.环境介绍 1.Linux下在Docker容器中部署好了一个网站,该网站需要通过外部提供程序访 ...
- 基于openssl的https服务的配置
openssl实现私有CA,并配置基于openssl的https服务的配置,原理如下图 在CA服务器上实现私有CA步骤如下: 1.生成一对密钥 2.生成自签证书 基本的配置如下代码; [root@CA ...
最新文章
- mysql galera_(十六)MySQL集群galera实现
- 手势模型和Angular Material的实现
- (C++)函数参数传递中的一级指针和二级指针
- 详细说明 SourceTree 免登录,跳过初始设置的方法(Windows 版 )
- spark学习-51-Spark的task任务的运行
- 使用ldconfig命令将/usr/local/lib加入到默认库
- 如何区分PLC输入是源型输入还是漏型输入?
- 福利 | 2018 年,程序员全新的技术之路
- sizeof,终极无惑(上)
- python 66:re正则表达式5(全- tcy)
- OSDI 2022 Roller 论文解读
- GIS应用水平考试2009年度第一次全国统一考试
- php 验证 手机号码
- 易语言修改IP和DNS
- 双开助手多开分身版 v5.1.8
- 向Hexo博客添加微博秀(pug模板)
- 苹果支付验证回执单相关错误码
- 【算法学习笔记】64. 枚举法 SJTU OJ 1381 畅畅的牙签
- 对计算机网络看法500字,500字信息技术学习评价
- 智慧楼宇篇 3 —— 室内定位技术(三) - UWB室内定位技术