Golang实现http重定向https

 更新时间:2022年07月13日 15:35:32   作者:taadis  
这篇文章介绍了Golang实现http重定向https的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

用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的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持程序员之家。

相关文章

  • golang文件内容覆盖问题的分析及解决

    golang文件内容覆盖问题的分析及解决

    通过golang读取数据库站点映射配置,生成nginx conf文件,并检查和重启nginx服务,已达到站点自动化部署目的,当目标文件中内容很长,而写入的内容很短时,目标文件内容无法完全覆盖,本文给大家介绍了解决方法,需要的朋友可以参考下
    2024-01-01
  • Golang?中的json.Marshal问题总结(推荐)

    Golang?中的json.Marshal问题总结(推荐)

    这篇文章主要介绍了Golang中的json.Marshal问题总结,本文通过一个例子给大家详细讲解,本次提出的问题中,我们不难注意到其中的time.Time是一个匿名(Anonymous)字段,而这个就是答案的由来,需要的朋友可以参考下
    2022-06-06
  • GO语言基本数据类型总结

    GO语言基本数据类型总结

    这篇文章主要介绍了GO语言基本数据类型,较为详细的总结了GO语言的基本数据类型,对于GO语言的学习有一定的借鉴参考价值,需要的朋友可以参考下
    2014-12-12
  • Go语言实现猜数字小游戏

    Go语言实现猜数字小游戏

    这篇文章主要为大家详细介绍了Go语言实现猜数字小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-10-10
  • Go官方工具链用法详解

    Go官方工具链用法详解

    Go官方工具链工具要求所有的Go源代码文件必须以.go后缀结尾。这里,我们假设一个最简单的Go程序放在hello.go的文件中,下面通过示例代码给大家介绍Go官方工具链用法简介,需要的朋友可以参考下
    2021-10-10
  • 从并发到并行解析Go语言中的sync.WaitGroup

    从并发到并行解析Go语言中的sync.WaitGroup

    Go?语言提供了许多工具和机制来实现并发编程,其中之一就是?sync.WaitGroup。本文就来深入讨论?sync.WaitGroup,探索其工作原理和在实际应用中的使用方法吧
    2023-05-05
  • Go语言实现猜谜小游戏

    Go语言实现猜谜小游戏

    这篇文章主要为大家介绍了Go语言实现猜谜小游戏示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01
  • 解析Golang和Java的优势与劣势

    解析Golang和Java的优势与劣势

    Golang和Java是两种流行的编程语言,它们在很多方面有着相似之处,但也存在一些重要的区别,本文将对Golang和Java进行对比,探讨它们的特点和适用场景,需要的朋友可以参考下
    2023-10-10
  • 基于Go语言实现类似tree命令的小程序

    基于Go语言实现类似tree命令的小程序

    tree?命令是一个小型的跨平台命令行程序,用于递归地以树状格式列出或显示目录的内容。本文将通过Go语言实现类似tree命令的小程序,需要的可以参考一下
    2022-10-10
  • golang组件swagger生成接口文档实践示例

    golang组件swagger生成接口文档实践示例

    这篇文章主要为大家介绍了golang组件swagger生成接口文档实践示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2022-04-04

最新评论

?


http://www.vxiaotou.com