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
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>)"
执行完以上命令,则出现下图,说明文件上传成功

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

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可以看到证书上传成功,如下图:

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可以看到证书上传成功,如下图:

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按照一下路径即可查看到导入的证书名称。


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按照一下路径即可查看到导入的证书名称


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"}'


9 更新profile文件使其使用新证书
更新前证书信息记录

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>"}]}'

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")'
进行配置同步
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 验证新证书均已成功上传至 GTM
2 验证 SSL 业务、设备管理、big3d 通信均正常
3 保存 GTM 配置(防止重启丢失)
6 回滚预案
若新证书异常,使用备份的旧证书文件,反向执行上传→关联→重启流程,快速恢复业务。
7 总结
1 本流程为纯命令行 / API 操作,无 GUI 步骤,严格按照备份→上传→配置→生效→验证执行;
2 分三类证书独立操作:SSL 业务证书(业务访问)、设备管理证书(管理界面)、big3d 证书(设备间通信);
3 所有命令统一使用curl -X GET/POST/PATCH格式,可直接替换参数执行;
最后必须执行配置保存,确保证书更换永久生效。
