Golang实现http重定向https

Golang实现http重定向https

用golang来实现的webserver通常是是这样的

//main.go package main import ( "fmt" "io" "net/http" ) func defaultHandler(w http.ResponseWriter, r *http.Request) { io.WriteString(w, "<h1>Golang HTTP</h1>") } func main() { mux := http.NewServeMux() mux.HandleFunc("/", defaultHandler) err := http.ListenAndServe(":80", mux) if err != nil { fmt.Println(err.Error()) } }

服务运行后,我们通常通过http://localhost的形式来访问,
而我们要实现的是通过https://localhost的形式来访问.

那么如何用golang来实现HTTPS呢?

//main.go package main import ( "fmt" "io" "net/http" ) func defaultHandler(w http.ResponseWriter, r *http.Request) { io.WriteString(w, "<h1>Golang HTTPS</h1>") } func main() { mux := http.NewServeMux() mux.HandleFunc("/", defaultHandler) certFile := "/etc/letsencrypt/live/www.taadis.com/cert.pem" keyFile := "/etc/letsencrypt/live/www.taadis.com/privkey.pem" err := http.ListenAndServeTLS(":443", certFile, keyFile, mux) if err != nil { fmt.Println(err.Error()) } }

源码比较简单,主要是把http.ListenAndServe()替换成ListenAndServeTLS()。其次注意下端口号的区别,还有就是CA证书的问题,这里我采用了Let's Encrypt。

到此这篇关于Golang实现http重定向https的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持易知道(ezd.cc)。

推荐阅读

    MacChrome打开HTTPS证书错误解决方案

    MacChrome打开HTTPS证书错误解决方案,,评论:在Chrome浏览器下,总是建议站点的安全证书不可信。有一个很好的解决方案,你可以试试看。 GoAge

    HTTP502是什么意思

    HTTP502是什么意思,错误,运行,窗口,服务器,网站,刷新,http502表示网关错误。http502错误是由后端电脑之间不良的 IP 通讯造成的,可能包括正在尝

    如何解决 HTTP 错误 503:服务不可用?

    如何解决 HTTP 错误 503:服务不可用?,错误,修复,服务,单击,选择,程序池,HTTP 错误通常以状态代码的形式出现,它是标准响应代码,当网页或其他资源在

    http是一种什么

    http是一种什么,请求,协议,服务器,文件,响应,应用层,HTTP是一种超文本传输协议,是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵

    golang代理怎么设置

    golang代理怎么设置,代理,请求,设置,语言,客户端,应用程序,Go语言(或称Golang)是一种广受欢迎的编程语言,尤其适用于网络编程。在创建Web应用程序

    http协议默认的端口号是多少

    http协议默认的端口号是多少,协议,服务器,端口,请求,默认,客户,http协议默认的端口号是多少HTTP协议的默认的端口号为80,通常用于web服务http的

    什么是golang

    什么是golang,语言,执行,编程语言,机器语言,高级语言,运行,golang是一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言;它可以在不损

    默认的http超级文本传输协议端口是什么

    默认的http超级文本传输协议端口是什么,端口,服务,默认,输入,协议,网站,http协议的默认端口是“80端口”。80端口是为HTTP协议开放的,是网页服务

    http端口号是多少

    http端口号是多少,端口,服务,协议,默认,输入,端口号,HTTP协议的默认端口号为“80”,可以通过HTTP地址(即常说的“网址”)加“:80”来访问网站;但因

    http与https的区别

    http与https的区别,加密,协议,超文本传输协议,全版,连接,证书,  很多人存在这样的疑惑就是http与https的区别,其实https是http的安全版,但是它