Skip to main content
Version: v3&v6

HTTPS 配置

配置 HTTPS 操作需要重启 ONES 服务,会造成一分钟左右的不可用

配置参数

配置项类型示例描述
base_urlstring"http://ones.example.com"ONES 服务域名地址
tls_enablebooleantrue是否开启TLS,建议开启

操作步骤

配置开启 HTTPS

准备域名以及准备域名相对应的无密码证书文件并复制到最新的安装包目录下

sudo cp ones.example.com.key ones.example.com.crt /data/ones/pkg/ones-example-3.14.xxxxx

在示例中,主机域名是 ones.example.com,因此 ONES 部署工具会查找私钥和公共证书文件,分别名为 /data/ones/pkg/ones-example-3.14.xxxxx/ones.example.com.key/data/ones/pkg/ones-example-3.14.xxxxx/ones.example.com.crt

您必须以正确的顺序使用完整的证书链,以防止客户端连接时出现 SSL 错误:首先是服务器证书,然后是所有中间证书,最后是根 CA。

修改配置

登陆 ONES 服务器,进入当前运行中实例的安装目录

sudo cd /data/ones/pkg/ones-example-3.14.xxxxx

修改<tls_enable>配置的值为 true,修改<base_url>配置的值为 HTTPS 的域名,例如 https://ones.example.com

sudo ./json-util -config config.json -key "base_url" -operator update -value <base_url> >/dev/null 2>&1
sudo ./json-util -config config.json -operator add -key tls_enable -valtype bool -value true

重启容器

注意:执行以下命令将造成 ONES 服务暂时不可用

进入 screen 终端,执行common.sh脚本后选择 2 号选项,交互输入证书名称,注意只需要证书名称,等待命令执行完成

系统提示没有screen命令时,请通过yum install -y screen命令安装

sudo screen -S ones
sudo bash common.sh

交互示例

[root@localhost ones-example-3.14.xxxxx]# bash common.sh
the team_uuid is
BGwiSTx3

1.pull_image
2.local_upgrade(Unconventional upgrade)
3.open_automation
4.open_performance_pro
5.init
6.change_emailPsd
7.Not Yet Open
8.Not Yet Open
9.mysqlport_open
10.mysql5.7_ex
11.first_select_login
12.wps_install
13.replace_binary
14.replace_ssl
15.enable_plugin
16.change_port
17.skip_backup_to_upgrade
18.get_audit_log_info
19.mysql8_ex(Use with caution)

If mysqlrootuser is not root,Please pass the first parameter as mysqlrootuser!!Dedicated to external database
please input your select :2
Successfully copied 11.3kB to /data/ones/pkg/ones-sop-test2-3.12.613087/dockerconfig.json
please input the path of ssl file like .pem/.crt/..:test.pem
please input the path of ssl file .key:test.key

当观察到如下输出,则重启已经完成。稍等几分钟后 ONES 服务将可以正常访问,HTTPS 配置完成

15:29:15.764114 [SQL] SELECT COUNT(1) FROM marketplace_app_installed []
15:29:15.765044 [SQL] SHOW TABLES LIKE 'app_install_record' []
15:29:15.766297 [SQL] SELECT COUNT(1) FROM app_install_record []
2023/05/29 15:29:15 P3039: Table true Data false
2023/05/29 15:29:15 P3069: Table true Data true
15:29:15.767277 [SQL] begin; []
15:29:15.767694 [SQL] SELECT uuid, create_time, status, name, owner, logo, expire_time, scale, type, visibility FROM organization LIMIT 1; []
2023/05/29 15:29:15 --- start transaction org_uuid: D1X4EdeP---
15:29:15.768948 [SQL] SELECT uuid FROM team WHERE org_uuid=? AND status=?; [1:"D1X4EdeP" 2:1]
15:29:15.770020 [SQL] SELECT * FROM license WHERE org_uuid=?; [1:"D1X4EdeP"]
2023/05/29 15:29:15 P3069 already migrated, skip.
15:29:15.771617 [SQL] commit; []
[INFO] 2023/05/29 15:29:15 upgrade success!!

验证

容器重启完成并稍等几分钟后,直接访问 HTTPS 的域名地址,例如 https://ones.example.com,如可正常访问则正常

配置关闭 HTTPS

修改配置

登陆 ONES 服务器,进入当前运行中实例的安装目录

sudo cd /data/ones/pkg/ones-example-3.14.xxxxx

从安装目录移除证书文件

sudo mv ones.example.com.key ones.example.com.crt /tmp

修改<tls_enable>配置的值为 false,修改<base_url>配置的值为 HTTP 的域名,例如 http://ones.example.com

sudo ./json-util -config config.json -key "base_url" -operator update -value <base_url> >/dev/null 2>&1
sudo ./json-util -config config.json -operator add -key tls_enable -valtype bool -value <tls_enable>

重启容器

注意:执行以下命令将造成 ONES 服务暂时不可用

进入 screen 终端,执行common.sh脚本后选择 2 号选项,等待命令执行完成

系统提示没有screen命令时,请通过yum install -y screen命令安装

sudo screen -S ones
sudo bash common.sh

验证

容器重启完成并稍等几分钟后,直接访问 HTTP 的域名地址,例如 http://ones.example.com,如可正常访问则正常

更新 HTTPS 证书

修改配置

登陆 ONES 服务器,进入当前运行中实例的安装目录

sudo cd /data/ones/pkg/ones-example-3.14.xxxxx

从安装目录移除旧证书文件

sudo mv ones.example.com.key ones.example.com.crt /tmp

准备新的无密码证书文件并复制到最新的安装包目录下

sudo cp ones.example.com.key ones.example.com.crt /data/ones/pkg/ones-example-3.14.xxxxx

重启容器

注意:执行以下命令将造成 ONES 服务暂时不可用

进入 screen 终端,执行common.sh脚本后选择 14 号选项 replace_ssl,交互输入新的证书信息后等待命令执行完成

系统提示没有screen命令时,请通过yum install -y screen命令安装

sudo screen -S ones
sudo bash common.sh

验证

容器重启完成并稍等几分钟后,直接访问 HTTPS 的域名地址,例如 https://ones.example.com,如可正常访问则正常

故障排查

重启容器后,ONES 服务无法访问

  1. 检查配置是否正确

    cat config.json | grep -e \"tls_enable\" -e \"base_url\"

    示例输出

    [root@localhost ones-example-3.14.xxxxx]# cat config.json | grep -e \"tls_enable\" -e \"base_url\"
    "base_url": "https://ones.example.com",
    "tls_enable": true,
  2. 检查证书文件有效性

    openssl verify <your_certificate.pem>

    如果返回如下结果,则说明证书文件无效,请重新获取证书

    unable to load certificate
    140590600665008:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:707:Expecting: TRUSTED CERTIFICATE

如果上述方法都不能解决,请联系 ONES 工程师