开启/关闭 HTTPS
注意:该文档适用于V3版本;如果从V3版本升级到V6版,可参考配置HTTPS://域名访问调整,如有疑问请联系ONES工程师
配置参数
配置项 | 类型 | 示例 | 描述 |
---|---|---|---|
baseURL | string | "https://ones.example.com" | ONES 服务域名地址 |
tlsEnable | boolean | true | 是否开启TLS(https应该打开) |
onesIngressSSLCertSecretName | string | "all-myones-net-tls" | ssl密钥名字 |
操作步骤
开启HTTPS
准备域名以及准备域名相对应的无密码证书文件并复制到ONES系统的服务器中。例如放入/tmp目录下
导入TLS证书为 k3s secret
# 如下,/tmp 目录下有证书文件 test.crt 和密钥文件 test.key,使用其创建名为 all-myones-net-tls 的 secret
CERT_NAME=all-myones-net-tls # 名称,建议使用域名+tls,如这个是域名 all.myones.net 的 tls secret 名
KEY_FILE=/tmp/test.key
CERT_FILE=/tmp/test.crt
kubectl -n ones create secret tls ${CERT_NAME} --key ${KEY_FILE} --cert ${CERT_FILE}
# 确认创建
kubectl -n ones get secret ${CERT_NAME}
进入 ones pod
ones-ai-k8s.sh
安装 ingress-nginx-controller
make setup-ingress-nginx-controller
# 确认nginx-controller启动
kubectl wait --namespace ingress-nginx \
--for=condition=ready pod \
--selector=app.kubernetes.io/component=controller \
--timeout=120s
修改配置
vim config/private.yaml
修改如下配置(如果不存在对应配置,则自行在最后一行加入)
#<url>替换成具体域名(https开头),例如https://ones.example.com
baseURL: <url> # ONES 服务域名地址(❗️注意必须要协议开头,这里是https://)
tlsEnable: true #开启TLS
onesIngressSSLCertSecretName: all-myones-net-tls #ssl密钥名字可任意取,与上面命令的 CERT_NAME 对应上即可
应用配置
make setup-ones
# 确认 ingress 创建
kubectl -n ones get ingress
# 注意:ingress 创建完成后,最多需要几分钟等待controller配置变更
验证
等待服务重启完成并等待几分钟后,直接访问HTTPS域名地址。例如 https://ones.example.com
,如可正常访问则正常。
如果验证时发现返回的证书是 Kubernetes Ingress Controller Fake Certificate
,请确保访问所用域名,与配置的域名与证书生成使用的域名一致。
如果节点的网络环境不方便直接访问,可以先直接在本地检查:
HOST=local.test # 换成自己的域名
curl --resolve ${HOST}:443:127.0.0.1 https://${HOST} -vv
# 观察终端输出中的 Server certificate 区块下的 subject 是否自己域名,以及其过期时间等
更换 TLS 证书
先参考上文,确认是采用本文的方式添加的SSL证书;然后删除掉原来的secret,并使用新证书创建同名的即可。
# 如下,/tmp 目录下有证书文件 test.crt 和密钥文件 test.key,使用其创建名为 all-myones-net-tls 的 secret
CERT_NAME=all-myones-net-tls
KEY_FILE=/tmp/test.key
CERT_FILE=/tmp/test.crt
# 删除掉原来的
kubectl -n ones delete secret ${CERT_NAME}
# 创建新的
kubectl -n ones create secret tls ${CERT_NAME} --key ${KEY_FILE} --cert ${CERT_FILE}
# 确认创建
kubectl -n ones get secret ${CERT_NAME}
然后最多几分钟等待controller完成配置变更即可验证。
关闭HTTPS
进入 ones pod
ones-ai-k8s.sh
修改配置
vim config/private.yaml
删除如下配置(在配置前面加#号注释掉,或者直接删除)
baseURL: <url> # ONES 服务域名地址
tlsEnable: true #开启TLS
onesIngressSSLCertSecretName: all-myones-net-tls #ssl密钥名字
应用配置
make setup-ones
验证
等待服务重启完成并等待几分钟后,直接访问HTTPS域名地址。例如 https://ones.example.com
,不能正确访问则说明HTTPS成功关闭。