加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

golang https

发布时间:2020-12-16 19:25:16 所属栏目:大数据 来源:网络整理
导读:Go支持https协议的简单例子 我们知道除了http方式访问网页之外,还有一种加密的https方式。Go语言的 net/http 包中包含了这种https页面访问方式的支持。 net/http 包中的 ListenAndServeTLS 就是提供这个功能的。我们可以先看一下这个函数的原型。 funcListe

Go支持https协议的简单例子

我们知道除了http方式访问网页之外,还有一种加密的https方式。Go语言的net/http包中包含了这种https页面访问方式的支持。net/http包中的ListenAndServeTLS就是提供这个功能的。我们可以先看一下这个函数的原型。

funcListenAndServeTLS(addrstring,certFilestring,keyFilestring,handlerHandler)error

从上面的函数原型我们可以看出,其实和http方式的差别就在于需要提供一对公钥文件certFile和私钥文件keyFile。

我们在linux下面可以使用下面的命令来生成一对测试的公钥和私钥文件。

opensslgenrsa-outkey.pem2048
opensslreq-new-x509-keykey.pem-outcert.pem-days3650

然后我们把cert.keykey.pem到拷贝到一个目录https_demo下面,然后再在这个目录下面创建一个simple_https.go文件,代码如下:

packagemain

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

funchelloHandler(whttp.ResponseWriter,r*http.Request){
io.WriteString(w,"helloworld!")
}

funcmain(){
http.HandleFunc("/hello",helloHandler)
err:=http.ListenAndServeTLS(":8080","cert.pem","key.pem",nil)
iferr!=nil{
log.Fatal("ListenAndServeTLS:",err.Error())
}
}

使用go build编译代码。

$ go build simple_https.go

运行

$ ./simple_https

这时,监听本地端口8080,打开浏览器访问https://localhost:8080/hello就可以看到结果了。

其实和普通的http比起来,就多了一对公钥和私钥而已。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读