跳到主要内容
版本:v3&v6

配置 HTTPS://域名 访问

说明:

  1. 该文档适用于V6版本;如果从V3版本升级到V6版,可去掉前期baseurl配置和https配置、参考该文档调整,如有疑问请联系ONES工程师;
  2. ONES开箱初装完成后,用户能够使用 http://*:30011访问ONES系统。客户可通过已有的代理、SLB、网关等设备做反向代理,实现 HTTPS://域名 访问;也可以采用本文的方式在ONES侧实现HTTPS://域名 访问。

配置参数

提前准备SSL证书和域名,然后在主机上执行 ones-ai-k8s.sh 进入容器,然后 vi /data/ones/ones-ai-k8s/config/private.yaml 进行修改,修改后执行 make setup-ones-built-in-nginx 生效。

# 证书要求PEM格式, 执行类似命令 cat cert1.crt | base64 -w 0 生成结果, 替换下面的xxxxxx
onesBuiltInNginxSSLCertificates: |
cert1.crt: xxxxxx
cert1.key: xxxxxx
onesBuiltInNginxPorts: "443"
onesBuiltInNginxConfig: |
server {
listen 443 ssl;
server_name example.myones.net; # 按需改
ssl_certificate /etc/nginx/cert/cert1.crt;
ssl_certificate_key /etc/nginx/cert/cert1.key;

location / {
set $scheme_header "https";
proxy_set_header X-ONES-BaseURL https://example.myones.net; # 按需改

proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-Proto $scheme_header;
proxy_set_header X-Original-Forwarded-For $http_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $http_x_forwarded_for;

proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_connect_timeout 60s;
proxy_send_timeout 3600s;
proxy_read_timeout 3600s;

resolver 127.0.0.1:53 ipv6=off;
proxy_pass http://access-service:80;
}
}

验证

等待服务重启完成并等待几分钟后,直接访问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证书。准备好新的证书,然后主机上执行 ones-ai-k8s.sh 进入容器,然后 vi /data/ones/ones-ai-k8s/config/private.yaml 进行修改,修改后,执行 make setup-ones-built-in-nginx 生效。

# 证书要求PEM格式, 执行类似命令 cat cert1.crt | base64 -w 0 生成结果, 替换下面的xxxxxx
onesBuiltInNginxSSLCertificates: |
cert1.crt: xxxxxx
cert1.key: xxxxxx

关闭HTTPS

参考打开的方法,主机上执行 ones-ai-k8s.sh 进入容器,然后 vi /data/ones/ones-ai-k8s/config/private.yaml 删除添加的配置,修改后执行 make setup-ones-built-in-nginx 生效。

验证

等待服务重启完成并等待几分钟后,直接访问HTTPS域名地址。例如 https://ones.example.com,不能正确访问则说明HTTPS成功关闭;能继续访问http://ip:30011表示服务正常。