Skip to content

部署HTTPS工具

本工具采用阿里云的免费证书(有效期三个月),可以实现自动续签并部署https证书(等同于ssl证书)。内置了nginx模块,证书部署成功后即可使用https访问私有化会众云平台

注意

证书实际有效期 90 天,插件会提前 10 天来执行续签操作。

提示

域名代理-HTTP自动证书-HTTPS使用的是同一个插件,场景不同故作拆分

特别说明

进行本工具部署前,请确保您已经具备了以下条件(缺一不可)

  1. 服务器的443端口可以访问
  2. 服务器安全组已允许443端口访问
  3. 443端口未被其他服务占用
  4. 域名归属于阿里云,不能是其他云平台
  5. 域名已经进行了公安部备案,并且已经获取到了备案编号
  6. 本工具必须和私有化会众云平台部署在同一台服务器

1.创建配置文件

参数说明

bash
# 参数说明
ALI_ACCESS_KEY_ID         # 【必填】【阿里云访问控制】AccessKey ID
ALI_ACCESS_KEY_SECRET     # 【必填】【阿里云访问控制】AccessKey ID 对应的 AccessKey Secret
CW_NOTICE_WEBHOOK         # 【必填】 企业微信的群机器人地址(用于通知证书签发消息)
VERIFY_FILE_NAME          # 【可选】 校验文件名(接入微信、企微、钉钉等开放平台时,需要进行域名校验)
VERIFY_FILE_TEXT          # 【可选】 校验文件值(校验文件的内容值,一般是一串字符)

1.1.shell一键创建

使用以下Shell命令,按需替换 参数后,将其复制粘贴至命令行界面,敲击回车键即可

bash
mkdir -p /etc/hzy && cat > /etc/hzy/https.json <<- EOF
{
  "ALI_ACCESS_KEY_ID": "LTAI5tPCxxxxxxxxREMdWCdy",
  "ALI_ACCESS_KEY_SECRET": "bHpFWZaxxxxxxx8vJTysjjMshv5",
  "CW_NOTICE_WEBHOOK": "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxxxxxxxx-da5ce67533fd",
  "VERIFY_FILE_NAME": "test.txt",
  "VERIFY_FILE_TEXT": "xxxxxxxx"
}
EOF

如果验证执行结果?

输入 cat /etc/hzy/https.json 后敲击回车键,如果有如下输出,则为成功

json
{
  "ALI_ACCESS_KEY_ID": "LTAI5tPCxxxxxxxxREMdWCdy",
  "ALI_ACCESS_KEY_SECRET": "bHpFWZaxxxxxxx8vJTysjjMshv5",
  "CW_NOTICE_WEBHOOK": "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxxxxxxxx-da5ce67533fd",
  "VERIFY_FILE_NAME": "test.txt",
  "VERIFY_FILE_TEXT": "xxxxxxxx"
}

1.2.手动创建配置文件

创建文件https.json

bash
# 必须创建文件!必须创建文件!必须创建文件!
# 创建文件
mkdir /etc/hzy
cd /etc/hzy
vim https.json

文件内容示例

特别说明

如果您对字段的内容不清楚,后面的内容会对每一个配置字段进行详细解释

json
{
  "ALI_ACCESS_KEY_ID": "LTAI5tPCxxxxxxxxREMdWCdy",
  "ALI_ACCESS_KEY_SECRET": "bHpFWZaxxxxxxx8vJTysjjMshv5",
  "CW_NOTICE_WEBHOOK": "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxxxxxxxx-da5ce67533fd",
  "VERIFY_FILE_NAME": "test.txt",
  "VERIFY_FILE_TEXT": "xxxxxxxx"
}

2.创建子域名

需在创建已备案域名的一个子域名,用于申请单域名的https证书

2.1.配置域名解析

登录阿里云,并打开域名控制台

点击解析,并添加一条记录

2.2.添加域名

  • 方式一:直接访问网站后台配置页面,并修改 系统配置/基础配置/系统根地址

  • 方式二:登录服务器,并修改server_config.json文件

bash
cd /etc/hzy
vim server_config.json

修改示例(已省略不相关配置)

假设:原文件内容如下

json
{
  "ROOT_DOMAIN": "http://192.168.31.153:2020"
}

假设:子域名为test.ysyoungth.com,则修改后的内容如下

json
{
  "ROOT_DOMAIN": "https://test.ysyoungth.com"
}

3.创建AccessKey

本工具采用阿里云API调用的方式进行证书申请,所以必须要创建AccessKey才可以进行API调用

3.1.领取阿里云免费证书额度

提示

阿里云每个自然年有且仅有20张免费证书额度,每张证书有效期3个月

3.2.创建用户

点击访问控制


添加一个用户

注意

这里需要勾选:OpenAPI 调用访问


添加用户权限

添加用户后,选择添加权限,并分配管理云盾证书服务的权限


创建访问凭据

点击用户,进入用户详情,并在详情中创建:AccessKeyAccessSecret


配置访问凭据

将访问凭据配置到:https.json

当前配置项https配置项
AccessKeyALI_ACCESS_KEY_ID
AccessSecretALI_ACCESS_KEY_SECRET

4.创建企微机器人

签发证书的通知消息(部署成功消息、部署错误消息等)都会发送到指定的企微机器人

创建企微群聊

添加企微群聊机器人

配置机器人

将机器人地址配置到:https.json

当前配置项https配置项
机器人地址CW_NOTICE_WEBHOOK

5.设置校验文件

当接入企微、钉钉、飞书等开放平台时,开放平台一般都会要求进行域名归属权校验,校验的方式几乎都是:将指定的文件放到域名根目录下,然后可以通过域名获取到文件内容

如果存在这样的需求,可以将校验文件配置到https.json

示例

假设:有一个校验文件名字是itg2fyLtiupAWwOt.txt,校验文件内容是pAWwOtitg2fyLtiup

则配置如下:

https配置项配置值示例
VERIFY_FILE_NAME"itg2fyLtiupAWwOt.txt"
VERIFY_FILE_TEXT"pAWwOtitg2fyLtiup"

注意

如果有多个校验文件,单次只能配置一个,配置以后重启docker服务即可生效

6.运行HTTPS服务

启动服务

注意

必须使用 --network host 模式启动容器,否则nginx代理无法生效!

bash
docker run --privileged -e TZ=Asia/Shanghai -itd --restart always --network host -v /etc/hzy:/root/conf registry.cn-hangzhou.aliyuncs.com/hzy0code/hzy-utils:https.x86.1.2.0

重启服务

注意

修改了配置文件后,需要使用以下命令重启服务

[CONTAINER ID]表示容器ID,使用docker ps命令可以查看容器ID

示例:

bash
docker restart [CONTAINER ID]

访问服务

证书签发并且部署成功后,则可以使用域名的方式访问会众云平台,例如: