访问Rancher后台提示“证书无效”。

排查原因是由于挂载的ssl证书失败,rancher启用了生成的默认 CA 证书。这里打算 更新为公认的 CA 签名证书,其中

  1. Rancher版本 v2.6.6
  2. Racher为Docker单节点安装

解决步骤

考虑到单机版是没有Volume的,为了保证数据不丢失。处理大致分为以下几个步骤

  1. 从你的 Rancher 服务器容器创建数据的副本
  2. 创建一个备份压缩包
  3. 使用新的证书 启动新的Rancher服务器容器

1. 从你的 Rancher 服务器容器创建数据的副本

1.1 停止当前运行 Rancher 服务器的容器。替换<RANCHER_CONTAINER_NAME>为您的 Rancher 容器的名称

运行停止RancherDocker

docker stop <RANCHER_CONTAINER_NAME>
1.2 使用以下命令替换每个占位符,从您刚刚停止的 Rancher 容器创建一个数据容器。
docker create --volumes-from <RANCHER_CONTAINER_NAME> --name rancher-data rancher/rancher:<RANCHER_CONTAINER_TAG>

2. 创建一个备份压缩包

从您刚刚创建的数据容器 ( rancher-data),创建一个备份 tarball ( rancher-data-backup-<RANCHER_VERSION>-.tar.gz)。如果升级期间出现问题,此 tarball 将用作回滚点。使用以下命令,替换每个占位符。

docker run --volumes-from rancher-data -v "$PWD:/backup" --rm busybox tar zcvf /backup/rancher-data-backup-<RANCHER_VERSION>-<DATE>.tar.gz /var/lib/rancher

3. 启动新的Rancher服务器容器

如果您选择使用由公认的 CA 签名的证书,您将添加–volumes-from rancher-data到您启动原始 Rancher 服务器容器的命令中,并且需要访问您最初安装时使用的相同证书。请记住将–no-cacerts作为参数包含在容器中以禁用 Rancher 生成的默认 CA 证书。

docker run -d --volumes-from rancher-data \
  --restart=unless-stopped \
  -p 80:80 -p 443:443 \
  -v /[your-workspace]/certs:/etc/rancher/ssl \ 
  --privileged \
  rancher/rancher:v2.6.6 \
  --no-cacerts

这里的 [your-workspace]替换为你的证书存放路径。其中包括 cert.pem 和 key.pem

再访问rancher dashboard,提示“有效证书”。

参考