Golang https设置

前言

这里使用自签CA,SSL证书

CA证书部分

生成CA的私钥

openssl genrsa -out ca.key 2048

生成CA证书

openssl req -x509 -new -nodes -key ca.key -subj "/CN=www.open1.com" -days 3660 -out ca.crt
服务器证书部分

创建服务器私钥

openssl genrsa -out server.key 2048

创建服务器证书签名请求

openssl req -new -key server.key -subj "/CN=www.open1.com" -out server.csr

使用CA颁发证书

openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -days 3660 -out server.crt 

# 当前目录下结构
xieruixiang@xieruixiangdeMacBook-Pro testData % ls
ca.crt		ca.key		ca.srl		server.crt	server.csr	server.key
go http service
package main

import (
	"log"
	"net/http"
	"time"
)

func main() {
	mux := http.NewServeMux()
	mux.HandleFunc("/", func(writer http.ResponseWriter, request *http.Request) {
		writer.Write([]byte("ssl/tls"))
	})
	server := &http.Server{
		Addr:         ":2001",
		Handler:      mux,
		WriteTimeout: time.Second * 3,
	}

	server.ListenAndServe()
	//传入ssl证书和服务器私钥
	//非https的使用 server.ListenAndServe() 启动
	log.Fatal(server.ListenAndServeTLS("/Users/xieruixiang/go/src/gateway/testData/server.crt","/Users/xieruixiang/go/src/gateway/testData/server.key"))
}

访问

由于我们证书主体是www.open1.com
需要修改本地host

vim /etc/hosts
# 增加
127.0.0.1 www.open1.com

由于我们的ca证书是不受信任的所以,访问网站会有提示。
火狐可以选择直接跳过,低版本的google浏览器也能选择跳过,高版本需要在提示页面键盘输入:thisisunsafe。当使用https后,发现协议版本也提升到http2了

在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值