zoukankan      html  css  js  c++  java
  • Golang 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

  • 相关阅读:
    docker 安装 mysql5.7
    docker 安装 redis
    docker 安装 gitlab
    docker 升级到新版本
    logstash 采集springboot 错误日志配置
    图片左下角添加水印
    frida动态修改
    反反frida调试
    IDA插件KeyPatch直接在IDA中修改arm指令
    frida调用制作dex(用于有些对象读取不了)
  • 原文地址:https://www.cnblogs.com/taadis/p/12126228.html
Copyright © 2011-2022 走看看