Golang部署HTTPS,GO下SSL证书部署实操记录

服务器:linux+nginx+golang
域名:wordsku.com

2022了大部分站都部署了HTTPS ,不能落后,下午西部1块钱买了个证书,上线部署新站
需要配置的有:
1)func (srv *Server) ListenAndServeTLS(certFile, keyFile string)
2)nginx的config配置
3)HTTP 301 HTTPS

具体步骤:
1)func (srv *Server) ListenAndServeTLS(certFile, keyFile string)的配置:
    mhttp := &http.Server{
        Addr:         "127.0.0.1:端口号",
        Handler:      mservemux,
        ReadTimeout:  time.Second * 10,
        WriteTimeout: time.Second * 10,
    }

    mhttp.ListenAndServe() #这个是HTTP的监听,部署HTTPS,我是注释掉的状态
    mhttp.ListenAndServeTLS("路径/文件名.crt", "路径/文件名.key") #HTTPS监听
    
2)nginx的config配置:
宝塔环境下,每个站的nginx的配置为不同文件,大致路径:/www/server/panel/vhost/nginx/域名.conf,具体配置样例如下:
在当前监听80端口的 server{} 外新建一个server{}文件
server
{
    #设置服务名,你的域名
    server_name wordsku.com www.wordsku.com;
    #开启SSL 443
    listen 443 ssl;  #特意说明下这里浪费我好久时间,查找资料需要另起一行:ssl on; 但是宝塔报错与重载配置报错,需要把ssl on; 删掉,在 listen 443 后加“SSL”;
    #证书CRT文件路径
    ssl_certificate      路径/文件名.crt;
    #证书密钥key的文件路径
    ssl_certificate_key  路径/文件名.key;
    keepalive_timeout    70;
    

    #WWW跳转不带WWW的域名
    if ($host ~* "www.wordsku.com"){
        return 301 $scheme://wordsku.com$request_uri;
    }
    #nginx 转发 go WEB服务接口
    location / {
        proxy_pass https://127.0.0.1:端口号;
        proxy_set_header Host $proxy_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }


}

3)HTTP 301 HTTPS
在监听80端口的server的{}里面添加:
    #判断协议HTTP跳转HTTPS
    if ($scheme = "http"){
        return 301 https://wordsku.com$request_uri;
    }

TAGS: