您的位置:首页 > 娱乐 > 八卦 > 荆州网站建设价格_嘉定房产网_重庆seo网络优化咨询热线_百度知道首页官网

荆州网站建设价格_嘉定房产网_重庆seo网络优化咨询热线_百度知道首页官网

2025/6/7 15:47:16 来源:https://blog.csdn.net/weixin_45226922/article/details/145916161  浏览:    关键词:荆州网站建设价格_嘉定房产网_重庆seo网络优化咨询热线_百度知道首页官网
荆州网站建设价格_嘉定房产网_重庆seo网络优化咨询热线_百度知道首页官网

以下是借助 SaltStack 批量替换 SSL 证书的完整方案,该方案结合了自动化更新与回滚机制,以保障操作的高效性与安全性:


一、准备工作

  1. 目录结构搭建

    • 在 Salt Master 的 /home/salt/ssl_update 目录下构建如下结构:
      ssl_update/
      ├── update.sls        # 更新证书的状态文件 
      ├── rollback.sls      # 回滚证书的状态文件 
      └── ssl/             # 存放证书文件 ├── domain1/     # 按域名分类 │   ├── server.key  │   └── server.pem  └── domain2/├── server.key  └── server.pem  
      
    • 按照域名分类,将新证书存入对应的目录。
  2. SaltStack 环境确认

    • 确保所有目标 Minion 已通过 salt-key -A 完成证书认证。

二、证书更新流程(update.sls )

# 定义变量(使用 Jinja 模板)
{% set domain = 'domain1' %}
{% set ssl_dir = '/usr/local/nginx/ssl' %}
{% set dst_dir = ssl_dir + '/' + domain %}  # 目标证书路径 
{% set bak_dir = '/opt/backup/ssl/' + domain %}  # 备份目录 # 模块1:备份旧证书 
backup_ssl: cmd.run: - name: |year=$(openssl x509 -in {{ dst_dir }}/server.pem  -noout -enddate | awk -F '=' '{print $2}' | awk '{print $4}')mkdir -p {{ bak_dir }}/$year cp {{ dst_dir }}/* {{ bak_dir }}/$year/# 模块2:更新证书 
ssl_update: file.recurse: - source: salt://ssl_update/ssl/{{ domain }}  # Master 证书源路径 - name: {{ dst_dir }}- require: - cmd: backup_ssl # 模块3:重启服务(以 Nginx 为例)
nginx_reload: cmd.run: - name: /usr/local/nginx/sbin/nginx -t && /usr/local/nginx/sbin/nginx -s reload - require: - file: ssl_update 

关键点

  • 备份时依据证书的有效期年份创建子目录,以便后续进行回滚操作;
  • 运用 file.recurse 同步证书文件,自动覆盖旧文件;
  • 通过 require 确保操作步骤的顺序为:备份 → 更新 → 重启服务。

三、回滚机制(rollback.sls )

# 获取备份年份(优先从 Pillar 读取,否则取前一年)
{% set year = salt['pillar.get']('year',  default=$(date +%Y -d "last year")) %}rollback: cmd.run: - name: cp {{ bak_dir }}/{{ year }}/* {{ dst_dir }}/- onchanges: - file: ssl_update  # 仅当证书

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com