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

如何为采用URL Rewrite做代理的IIS静态站点安全存储服务端API令牌

解决IIS静态站点代理令牌加密问题

问题根源

aspnet_regiis.exe是针对ASP.NET框架的配置加密工具,纯静态HTML/JS/CSS站点的web.config不属于ASP.NET配置体系,因此加密部分节点会触发“Configuration section encryption is not supported”错误。以下是适配IIS 10+ URL-Rewrite模块的加密方案:

方案1:用IIS配置编辑器加密配置节

这是最直接的原生解决方案,IIS会自动处理解密逻辑,URL-Rewrite可正常读取:

  • 打开IIS管理器,选中目标静态站点
  • 右侧功能视图打开配置编辑器
  • 在“节”下拉菜单中定位到存储令牌的节点(比如system.webServer/rewrite/rules或你定义令牌的serverVariables节点)
  • 点击右侧操作栏的加密按钮,选择默认的RsaProtectedConfigurationProvider
  • 确认加密后,web.config中对应节点会被加密,IIS运行时自动解密,URL-Rewrite无需额外配置即可读取令牌

方案2:用系统环境变量存储令牌

绕过web.config加密限制,将令牌存到系统环境变量:

  1. 打开服务器的系统属性 → 高级 → 环境变量,添加系统级环境变量,例如API_PROXY_TOKEN=你的令牌值
  2. 修改web.config的URL-Rewrite规则,直接引用环境变量:
<system.webServer>
  <rewrite>
    <rules>
      <rule name="Proxy External API" stopProcessing="true">
        <match url="proxy-api/(.*)" />
        <action type="Rewrite" url="https://真实API地址/{R:1}" />
        <serverVariables>
          <!-- 引用系统环境变量传递令牌 -->
          <set name="HTTP_AUTHORIZATION" value="Bearer {ENV_API_PROXY_TOKEN}" />
        </serverVariables>
      </rule>
    </rules>
    <allowedServerVariables>
      <!-- 必须添加允许修改的Server变量 -->
      <add name="HTTP_AUTHORIZATION" />
    </allowedServerVariables>
  </rewrite>
</system.webServer>
  1. 执行命令iisreset重启IIS,让环境变量生效

方案3:使用IIS集中配置加密(多站点共享场景)

如果多个站点需要共享该令牌,用服务器级集中配置:

  • 在IIS管理器的服务器节点打开配置编辑器
  • 定位到对应配置节,添加令牌并执行加密操作
  • 站点级web.config通过继承服务器配置获取令牌,URL-Rewrite可直接读取加密后的数值

注意事项

  • 加密配置时,确保IIS应用池的身份(默认是IIS AppPool\站点名称)拥有加密证书的读取权限
  • 环境变量存储的令牌属于系统级敏感数据,仅服务器管理员可修改,安全性更高
  • 若使用ARR做反向代理,需确保ARR模块也能正常读取加密配置或环境变量

内容的提问来源于stack exchange,提问作者CamParker

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 05:35:15