You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用GCP托管SSL运行Rundeck时出现内容安全策略错误

问题根源
  • 核心问题在于Rundeck实例内部以HTTP协议运行,而外部通过GCP负载均衡器的HTTPS访问。Rundeck默认生成的Content Security Policy(CSP)中form-action 'self'指令对应的是内部HTTP地址,和外部用户访问的HTTPS域名不匹配,浏览器因此判定表单提交目标违反CSP规则。
  • 负载均衡器仅做SSL终止,将HTTPS请求转成HTTP转发给后端Rundeck,但Rundeck无法感知外部的HTTPS域名,导致输出的CSP头与实际访问环境不兼容。
解决步骤
  1. 配置Rundeck识别外部HTTPS域名
    编辑Rundeck的核心配置文件/etc/rundeck/rundeck-config.properties,添加或修改以下配置项:

    grails.serverURL=https://sub.domain.xxx
    server.useForwardHeaders=true
    
    • grails.serverURL:设置为外部用户实际访问的HTTPS完整地址,确保Rundeck生成的所有链接和CSP头都使用该域名。
    • server.useForwardHeaders=true:让Rundeck识别负载均衡器传递的X-Forwarded-*系列请求头,从而正确判断外部访问的协议和域名。
  2. 配置负载均衡器传递转发头
    在GCP负载均衡器的后端服务配置中,开启"转发客户端IP",并确保传递以下自定义请求头给后端Rundeck实例:

    • X-Forwarded-Proto: https
    • X-Forwarded-Host: sub.domain.xxx
      这一步是让Rundeck能准确感知外部的访问协议和域名,避免生成错误的CSP规则。
  3. 重启Rundeck服务
    执行命令使配置生效:

    sudo systemctl restart rundeckd
    
  4. 验证修复效果
    访问Rundeck登录页面,打开浏览器开发者工具的"网络"标签,查看登录页面的响应头,确认Content-Security-Policy中的form-action指令包含正确的HTTPS域名,此时表单提交将不再触发CSP错误。

内容的提问来源于stack exchange,提问作者devops on the road

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 17:02:50