AI Center
2020.10
False
横幅背景图像
AI Center
上次更新日期 2024年3月11日

更新 AI Fabric 证书

单节点

在安装过程中,您可以选择使用自己的证书,也可以跳过该步骤并使用自签名证书。如果您之后需要更改证书,请执行以下步骤。

首先,请确保您拥有证书,SSL 文件和私钥必须是两个单独的文件。

下一步是连接到 AI Fabric Linux 计算机并运行以下命令

kubectl -n default annotate secret kotsadm-tls acceptAnonymousUploads=1kubectl -n default annotate secret kotsadm-tls acceptAnonymousUploads=1
重要事项:添加此批准会临时创造一个漏洞,使攻击者能够恶意上传 TLS 证书。一旦 TLS 证书已上传,该漏洞将再次关闭。

然后,您需要重新启动 kurl 代理服务器。为此,请先使用以下命令检索此代理服务器的名称:

kubectl get pods -A | grep kurl-proxy | awk '{print $2}'kubectl get pods -A | grep kurl-proxy | awk '{print $2}'

这将输出 kurl 代理服务器的名称,该名称应类似于 kurl-proxy-kotsadm-XXX。因此,下一步是删除此 Pod(它将自动重新启动)。

kubectl delete pods kurl-proxy-kotsadm-XXXkubectl delete pods kurl-proxy-kotsadm-XXX

您可以通过运行 get pods 命令来检查该 Pod 是否已重新启动:

kubectl get podskubectl get pods

在该 Pod 旁边,您应该会看到“1/1”和“正在运行”

一旦准备就绪,您可以删除配置映射:

kubectl -n aifabric delete configmap is-client-configkubectl -n aifabric delete configmap is-client-config

然后连接到 KotsAdmin 用户界面,记住 URL 应类似于 https://<aif-machine>:8800/tls。此页面用于上传新证书(可按需更改关联的域名)。



单击“上传并继续”按钮,然后前往配置页面。根据需要更改 HostIP/FQDN,生成新的访问令牌,然后单击“保存”。完成预检后,单击“部署”以重新部署 AI Fabric 应用程序。安装后,AI Fabric 将使用新证书。

重新部署 AI Fabric 后,运行以下命令以使更改生效:

kubectl -n istio-system rollout restart deployment istio-ingressgatewaykubectl -n istio-system rollout restart deployment istio-ingressgateway
重要事项:请记住,如果您更改 AI Fabric 的 FQDN,则需要使用此新 FQDN 再次修改 Orchestrator 网页配置

多节点 AKS

从 20.10.2 开始,我们的安装程序将使用证书管理器自动处理证书,但如果您首先安装了 20.10.1,您的证书可能会在某个时间过期以进行修复,因此您需要按照以下步骤操作。首先下载并打开新安装程序捆绑包(我们不安装新的捆绑包):

curl -O https://download.uipath.com/aifabric/online-installer/v2020.10.2/aifabric-installer-v20.10.2.tar.gz
tar -xvf aifabric-installer-v20.10.2.tar.gz
cd ./aifabric-installer-v20.10.2/infra/azure/aks-armcurl -O https://download.uipath.com/aifabric/online-installer/v2020.10.2/aifabric-installer-v20.10.2.tar.gz
tar -xvf aifabric-installer-v20.10.2.tar.gz
cd ./aifabric-installer-v20.10.2/infra/azure/aks-arm

然后像这样创建脚本文件“update_cert.sh”

USER_EMAIL=<enter certificate owner email here>
sed -i "s/email.address@org.com/$USER_EMAIL/g" cert-manager-crd/letsencrypt-clusterissuer.yaml
INGRESS_HOST=$(kubectl -n istio-system get svc istio-ingressgateway -o json | jq -r ".status.loadBalancer.ingress[0].ip")
IP_NAME="$(az network public-ip list --query "[?ipAddress=='$INGRESS_HOST']|[0].name" | sed 's/"//g')"
INGRESS_DOMAIN="$(az network public-ip list --query "[?ipAddress=='$INGRESS_HOST']|[0].dnsSettings.fqdn" | sed 's/"//g')"
sed "s/{{INGRESS_DOMAIN}}/${INGRESS_DOMAIN}/g" cert-manager-crd/letsencrypt-istiocert.yaml > cert-manager-crd/letsencrypt-istiocert-temp.yaml
kubectl apply -f cert-manager-crd/letsencrypt-clusterissuer.yaml
kubectl apply -f cert-manager-crd/letsencrypt-istiocert-temp.yaml
kubectl -n istio-system \)\)
  patch gateway istio-autogenerated-k8s-ingress --type=json \)\)
  -p='[{"op": "replace", "path": "/spec/servers/1/tls", "value": {"credentialName": "aifabric-ingressgateway-certs", "mode": "SIMPLE", "privateKey": "sds", "serverCertificate": "sds"}}]'
kubectl -n istio-system rollout restart deployment istio-ingressgatewayUSER_EMAIL=<enter certificate owner email here>
sed -i "s/email.address@org.com/$USER_EMAIL/g" cert-manager-crd/letsencrypt-clusterissuer.yaml
INGRESS_HOST=$(kubectl -n istio-system get svc istio-ingressgateway -o json | jq -r ".status.loadBalancer.ingress[0].ip")
IP_NAME="$(az network public-ip list --query "[?ipAddress=='$INGRESS_HOST']|[0].name" | sed 's/"//g')"
INGRESS_DOMAIN="$(az network public-ip list --query "[?ipAddress=='$INGRESS_HOST']|[0].dnsSettings.fqdn" | sed 's/"//g')"
sed "s/{{INGRESS_DOMAIN}}/${INGRESS_DOMAIN}/g" cert-manager-crd/letsencrypt-istiocert.yaml > cert-manager-crd/letsencrypt-istiocert-temp.yaml
kubectl apply -f cert-manager-crd/letsencrypt-clusterissuer.yaml
kubectl apply -f cert-manager-crd/letsencrypt-istiocert-temp.yaml
kubectl -n istio-system \)\)
  patch gateway istio-autogenerated-k8s-ingress --type=json \)\)
  -p='[{"op": "replace", "path": "/spec/servers/1/tls", "value": {"credentialName": "aifabric-ingressgateway-certs", "mode": "SIMPLE", "privateKey": "sds", "serverCertificate": "sds"}}]'
kubectl -n istio-system rollout restart deployment istio-ingressgateway

然后执行以下脚本:

./update_cert.sh./update_cert.sh
  • 单节点
  • 多节点 AKS

此页面是否有帮助?

获取您需要的帮助
了解 RPA - 自动化课程
UiPath Community 论坛
Uipath 白色徽标
信任与安全
© 2005-2024 UiPath. All rights reserved.