支持https访问

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 main

import (
  "fmt"
  "net/http"
)

func main() {
  // 1.定义一个 URL 前缀
  staticURL := "/static/"
  // 2.定义一个 FileServer
  fs := http.FileServer(http.Dir("./static"))
  // 3.绑定 url 和 FileServer
  http.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 main

import (
  "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.定义一个 FileServer
  fs := http.FileServer(http.Dir("./static"))
  // 3.绑定 url 和 FileServer
  http.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.启动 HttpsServer
  startHttps(":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

在这里插入图片描述

要在Docker中部署RabbitMQ并支持HTTPS访问,可以按照以下步骤进行操作: 1. 创建Docker容器:首先,你需要创建一个Docker容器来运行RabbitMQ。可以使用以下命令创建一个基本的RabbitMQ容器: ``` docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:latest ``` 2. 生成SSL证书:为了支持HTTPS访问,你需要生成SSL证书。可以使用自签名证书或者购买证书。这里以自签名证书为例,使用OpenSSL生成证书: ``` openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout rabbitmq.key -out rabbitmq.crt ``` 3. 创建RabbitMQ配置文件:在Docker容器中,你需要创建一个RabbitMQ配置文件来启用HTTPS。创建一个名为`rabbitmq.conf`的文件,并添加以下内容: ``` listeners.ssl.default = 5671 ssl_options.cacertfile = /etc/rabbitmq/ssl/rabbitmq.crt ssl_options.certfile = /etc/rabbitmq/ssl/rabbitmq.crt ssl_options.keyfile = /etc/rabbitmq/ssl/rabbitmq.key ssl_options.verify = verify_none ``` 4. 将SSL证书复制到容器中:将生成的SSL证书复制到RabbitMQ容器中。可以使用以下命令将证书复制到容器的`/etc/rabbitmq/ssl/`目录下: ``` docker cp rabbitmq.crt rabbitmq:/etc/rabbitmq/ssl/ docker cp rabbitmq.key rabbitmq:/etc/rabbitmq/ssl/ ``` 5. 启动RabbitMQ容器:使用以下命令启动RabbitMQ容器,并将配置文件挂载到容器中: ``` docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 -p 5671:5671 -v /path/to/rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf -v /path/to/ssl:/etc/rabbitmq/ssl rabbitmq:latest ``` 6. 访问RabbitMQ:现在,你可以通过HTTPS访问RabbitMQ管理界面。在浏览器中输入`https://localhost:15672`,使用默认的用户名和密码(guest/guest)登录。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值