当前位置:首页 > 渗透测试 > 正文内容

F5 GTM设备SSL证书更换

随着网络安全要求的不断提升,SSL/TLS证书的定期更换已成为企业IT运维中的常规工作。在F5 BIG-IP GTM(Global Traffic Manager,即BIG-IP DNS)环境中,SSL证书广泛应用于HTTPS健康监控、管理界面加密以及设备间iQuery安全通信等多个关键环节。证书过期或更换操作不当,可能导致健康检查失败、管理访问中断甚至全局负载均衡服务异常。

本文档旨在为系统管理员提供一套基于iControl REST API的F5 GTM SSL证书更换标准化操作流程。文档涵盖三类核心证书(业务证书、管理证书、big3d证书)的完整更换步骤,包括证书上传、对象安装、Profile配置更新、配置保存与设备组同步、以及临时文件和旧证书的清理。所有API命令均经过F5 BIG-IP 13.1.3.6版本验证,可直接用于生产环境。

通过遵循本文档的规范流程,运维人员能够高效、安全地完成证书更换工作,最大程度降低业务中断风险,并确保GTM与LTM等设备间的信任链路持续可用。建议在实际操作前仔细阅读各部分说明,并在非生产环境中先行验证。

1.流程总览

整体遵循备份→上传→导入→关联→验证→生效标准流程,分三类证书(SSL 业务证书、设备管理证书、big3d 证书)独立执行,互不干扰,全程无 GUI 操作。

2 前置准备

  • 准备三类证书文件(.crt 公钥、.key 私钥、CA 证书链)

  • 确认 GTM 管理 IP、admin 账号密码、证书名称、分区(默认 Common)

  • 安装 curl 工具,确保命令行可访问 GTM 管理 IP

  • 记录旧证书名称、新证书名称,统一命名规范

3 核心通用操作命令

通用参数说明

通用参数

通用参数解释

<GTM-MGMT-IP>

GTM 设备管理 IP

<ADMIN-PASSWORD>

GTM admin 账号密码

<OLD-CERT-NAME>

文件(证书)名称

<NEW-CERT-NAME>

文件(证书)名称

<PARTITION>

分区(默认 Common)

$(date +%Y%m%d)

自动生成日期后缀,用于备份命名

<GTM-MGMT-IP>

GTM 设备管理 IP

<NEW-CERT-NAME>

新证书文件名称

<NEW-KEY-NAME>

新证书KEY文件名称

<NEW-CHAIN-NAME>

新证书链文件名称

<NEW-CERT-NAME>

新证书名称

<NEW-KEY-NAME>

新证书KEY名称(需要和证书名称相同)

<NEW-CHAIN-NAME>

新证书链名称

<PROFILE-NAME>

profile配置文件名称

<DEVICE_SYNC_GROUP_NAME>

设备同步组名称

4 证书更换流程 + API命令

4.1 操作流程

  • 备份旧业务证书

  • 上传新业务证书 + 私钥

  • 上传 CA 证书链(如需)

  • 更新新证书到 SSL 配置文件

  • 验证业务证书配置

  • 确认业务正常

  • 保存配置

  • 同步配置到同步组

  • 删除临时上传文件

4.2 执行命令

1 备份旧SSL业务证书
curl -X GET "https://<GTM-MGMT-IP>/mgmt/tm/sys/file/ssl-cert/~Common~<OLD-CERT>.crt"  -k -u admin:<PWD> -o <OLD-CERT>_backup_$(date +%Y%m%d).crt

2 备份旧业务证书私钥

curl -X GET "https://<GTM-MGMT-IP>/mgmt/tm/sys/file/ssl-key/~Common~<OLD-CERT>.key"  -k -u admin:<PWD> -o <OLD-CERT>_key_backup_$(date +%Y%m%d).key
  1. 2 上传新业务证书(.crt)到临时目录
curl -k -u admin:<PWD> -X POST -H "Content-Type: application/octet-stream" -H "Content-Range: 0-$(stat -c%s <NEW-FILE-NAME> | awk '{print $1-1}')/$(stat -c%s <NEW-CERT-NAME>)"

执行完以上命令,则出现下图,说明文件上传成功

图片.png

注意:上传以后,文件在GTM的/var/config/rest/downloads/下面,使用root账户登录GTM,执行命令:cd /var/config/rest/downloads/,回车,使用ls可以看到证书上传成功,如下图:

图片.png

3  上传新业务证书私钥(.key)到临时目录
curl -k -u admin:<PWD> -X POST -H "Content-Type: application/octet-stream" -H "Content-Range: 0-$(stat -c%s <NEW-FILE-NAME> | awk '{print $1-1}')/$(stat -c%s <NEW-KEY-NAME>)" --data-binary @<NEW-KEY-NAME> "/mgmt/shared/file-transfer/uploads/"">https://<GTM-MGMT-IP>/mgmt/shared/file-transfer/uploads/<NEW-KEY-NAME>" 

注意:上传以后,文件在GTM的/var/config/rest/downloads/下面,使用root账户登录GTM,执行命令:cd /var/config/rest/downloads/,回车,使用ls可以看到证书上传成功,如下图:

图片.png

4 上传新业务证书链(chain.crt)到临时目录
curl -k -u admin:<PWD> -X POST -H "Content-Type: application/octet-stream" -H "Content-Range: 0-$(stat -c%s <NEW-FILE-NAME> | awk '{print $1-1}')/$(stat -c%s <NEW-CHAIN-NAME>)" --data-binary @<NEW-CHAIN-NAME> "https://<GTM-MGMT-IP>/mgmt/shared/file-transfer/uploads/<NEW-CHAIN-NAME>"

注意:上传以后,文件在GTM的/var/config/rest/downloads/下面,使用root账户登录GTM,执行命令:cd /var/config/rest/downloads/,回车,使用ls可以看到证书上传成功,如下图:

图片.png

5 导入证书到系统配置
curl -X POST "https://<GTM-MGMT-IP>/mgmt/tm/sys/file/ssl-cert"  -k -u admin:<PWD> -H "Content-Type: application/json" -d '{"name":"<NEW-CERT-NAME>","partition":"Common","sourcePath":"file:/var/config/rest/downloads/<NEW-CERT-NAME>.crt"}'

注意:执行完该命令以后,证书的公钥已经导入到系统下的ssl_cert里面,具体登录web按照一下路径即可查看到导入的证书名称。

图片.png

图片.png

6 导入私钥key到系统配置
curl -X POST "https://<GTM-MGMT-IP>/mgmt/tm/sys/file/ssl-key" -k -u admin:<PWD> -H "Content-Type: application/json" -d '{"name":"<NEW-KEY-NAME>","partition":"Common","sourcePath":"file:/var/config/rest/downloads/<NEW-CERT>.key"}'

注意:执行完该命令以后,证书的私钥已经导入到系统下的ssl_key里面,具体登录web按照一下路径即可查看到导入的证书名称

图片.png

图片.png

8 导入证书链到系统配置
curl -k -u admin:<PWD> -X POST https://<GTM-MGMT-IP>/mgmt/tm/sys/file/ssl-cert -H "Content-Type: application/json" -d '{"name":"<NEW-CHAIN-NAME>","partition":"Common","sourcePath":"file:/var/config/rest/downloads/<NEW-CHAIN-NAME>.crt"}' 

图片.png

图片.png

9 更新profile文件使其使用新证书

更新前证书信息记录

图片.png

curl -k -u admin:<PWD> -X PATCH "https://<GTM-MGMT-IP>/mgmt/tm/ltm/profile/client-ssl/~Common~<PROFILE-NAME>"   -H "Content-Type: application/json" -d '{ "certKeyChain": [{"name": "default","cert": "/Common/<NEW-CERT-NAME>","key": "/Common/<NEW-KEY-NAME>","chain":"/Common/<NEW-CHAIN-NAME>"}]}'


图片.png

图片.png

10 配置保存

curl -k -u admin:<PWD> -X POST "https://<GTM-MGMT-IP>/mgmt/tm/sys/config"   -H "Content-Type: application/json"   -d '{"command":"save"}'

同步证书到设备同步组的其他设备

  • 查看设备同步组信息

curl -k -u admin:<PWD>  -X GET "https://<GTM-MGMT-IP>/mgmt/tm/cm/device-group" | grep -E '("name"|"type"|"autoSync")'
图片.png


  • 行配置同步

1. curl -k -u admin:<PWD> -X POST "https://<GTM-MGMT-IP>/mgmt/tm/cm/config-sync" -H "Content-Type: application/json" -d '{"command":"run", "config-sync to-group <DEVICE_SYNC_GROUP_NAME>"}'
  • 查看同步状态

curl -k -u admin:<PWD> -X GET "https://<GTM-MGMT-IP>/mgmt/tm/cm/sync-status" \  | grep -E '("deviceName"|"status"|"color")'

11 删除上传的临时文件

curl -k -u admin:admin -X POST "https://<GTM-MGMT-IP>/mgmt/tm/util/bash"  -H "Content-Type: application/json" -d '{"command":"run","utilCmdArgs":"-c \"rm -f /var/config/rest/downloads/<NEW-FILE-NAME>\""}


5 最终统一验证流程

  1. 1 验证新证书均已成功上传至 GTM

  2. 2 验证 SSL 业务、设备管理、big3d 通信均正常

  3. 3 保存 GTM 配置(防止重启丢失)


6 回滚预案

若新证书异常,使用备份的旧证书文件,反向执行上传→关联→重启流程,快速恢复业务。

7 总结

  1. 1 本流程为纯命令行 / API 操作,无 GUI 步骤,严格按照备份→上传→配置→生效→验证执行;

  2. 2 分三类证书独立操作:SSL 业务证书(业务访问)、设备管理证书(管理界面)、big3d 证书(设备间通信);

  3. 3 所有命令统一使用curl -X GET/POST/PATCH格式,可直接替换参数执行;

  4. 最后必须执行配置保存,确保证书更换永久生效。








返回列表

没有更早的文章了...

没有最新的文章了...

相关文章