当前位置: 首页 > news >正文

支持https访问

文章目录

      • 1. 打开自己的云服务器的 80 和 443 端口
      • 2. 安装 nginx
      • 3. 安装 snapd
      • 4. 安装 certbot
      • 5. 生成证书
      • 6. 拷贝生成的证书到项目工作目录
      • 7. 修改 main.go 程序如下
      • 8. 编译程序
      • 9. 启动程序
      • 10. 使用 https 和端口 8081 访问页面成功
      • 11. 下面修改程序,支持 https 和 http 能同时访问
      • 12. 编译
      • 13. 启动程序
      • 14. 使用 http 和 8080 端口访问成功
      • 15. 使用 https 和 8081 端口访问成功

1. 打开自己的云服务器的 80 和 443 端口

打开某为云官网 https://console.huaweicloud.com/
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

2. 安装 nginx

sudo apt update
sudo apt-get install nginx
nginx -v

3. 安装 snapd

sudo apt install snapd
sudo apt-get remove certbot

4. 安装 certbot

sudo snap install --classic certbot

5. 生成证书

sudo certbot certonly --nginx

在这里插入图片描述

6. 拷贝生成的证书到项目工作目录

cd ~/dev/go/screen_share
mkdir conf
cp /etc/letsencrypt/live/www.liangzixuexi.com/fullchain.pem   ~/dev/go/screen_share/conf/
cp /etc/letsencrypt/live/www.liangzixuexi.com/privkey.pem   ~/dev/go/screen_share/conf/

在这里插入图片描述

7. 修改 main.go 程序如下

package mainimport ("fmt""net/http"
)func main() {// 1.定义一个 URL 前缀staticURL := "/static/"// 2.定义一个 FileServerfs := http.FileServer(http.Dir("./static"))// 3.绑定 url 和 FileServerhttp.Handle(staticURL, http.StripPrefix(staticURL, fs))// 4.启动 HttpServer//err := http.ListenAndServe(":8080",nil)err := http.ListenAndServeTLS(":8081", "./conf/fullchain.pem", "./conf/privkey.pem", nil)if err != nil {fmt.Println(err)}
}

8. 编译程序

sh build.sh

在这里插入图片描述

#!/bin/bash
go build -o screen_share src/*

9. 启动程序

./screen_share

10. 使用 https 和端口 8081 访问页面成功

https://www.liangzixuexi.com:8081/static/share.html

在这里插入图片描述

但是现在只能通过 https 访问,原来的 http 不能访问了

11. 下面修改程序,支持 https 和 http 能同时访问

package mainimport ("fmt""net/http"
)func startHttp(port string){fmt.Printf("Start Http port: %s\n", port)err := http.ListenAndServe(port, nil)if err != nil {fmt.Println(err)}
}func startHttps(port, cert, key string){fmt.Printf("Start Https port: %s\n", port)err := http.ListenAndServeTLS(port, cert, key, nil)if err != nil {fmt.Println(err)}
}func main() {// 1.定义一个 URL 前缀staticURL := "/static/"// 2.定义一个 FileServerfs := http.FileServer(http.Dir("./static"))// 3.绑定 url 和 FileServerhttp.Handle(staticURL, http.StripPrefix(staticURL, fs))// 4.启动 HttpServer//err := http.ListenAndServe(":8080",nil)go startHttp(":8080")//err := http.ListenAndServeTLS(":8081", "./conf/fullchain.pem", "./conf/privkey.pem", nil)// 5.启动 HttpsServerstartHttps(":8081", "./conf/fullchain.pem", "./conf/privkey.pem")
}

12. 编译

sh build.sh

在这里插入图片描述

13. 启动程序

./screen_share

在这里插入图片描述

14. 使用 http 和 8080 端口访问成功

输入 http://www.liangzixuexi.com:8080/static/share.html

在这里插入图片描述

15. 使用 https 和 8081 端口访问成功

输入 https://www.liangzixuexi.com:8081/static/share.html

在这里插入图片描述

http://www.lryc.cn/news/126511.html

相关文章:

  • JavaScript 中常用简写技巧总结
  • 第15集丨Vue 江湖 —— 组件
  • 【JVM】CPU飙高排查方案与思路
  • 使用公网访问内网IIS网站服务器【无需公网IP】
  • Vim学习(二)—— 编译C程序
  • 【maven】常见命令
  • vue单项数据传输流式回复功能,post传值可关闭请求(@microsoft/fetch-event-source)
  • “深入探究JVM内部机制:理解Java虚拟机的工作原理“
  • ubuntu18.04下配置muduoC++11环境
  • leetcode 力扣刷题 数组交集(数组、set、map都可实现哈希表)
  • JVM元空间溢出的排除思路
  • vue+java实现在线播放mp4视频
  • 手机两个卡槽的正确使用方法,您用对了吗?
  • PyTorch翻译官网教程-NLP FROM SCRATCH: CLASSIFYING NAMES WITH A CHARACTER-LEVEL RNN
  • 基于注意力神经网络的深度强化学习探索方法:ARiADNE
  • Martin_DHCP_V3.0 (DHCP自动化泛洪攻击GUI)
  • vscode vue3+vite 配置eslint
  • 【C++学习手札】一文带你初识运算符重载
  • javaScript:数组检测
  • 【JavaEE基础学习打卡02】是时候了解Java EE了!
  • LeetCode 2813. Maximum Elegance of a K-Length Subsequence【反悔贪心】2582
  • 日常BUG——SpringBoot模糊映射
  • Docker 镜像
  • Python发送QQ邮件
  • 梯度下降求极值,机器学习深度学习
  • 【业务功能篇62】Spring boot maven多模块打包时子模块报错问题
  • 【BASH】回顾与知识点梳理(二十一)
  • 从针尖对麦芒,到丝滑入扣,记录那些BT需求
  • 封装vue2局部组件都要注意什么
  • 【深入浅出程序设计竞赛(基础篇)第三章 算法从0开始】