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

Azure APIM使用客户端证书调用SAP S/4HANA OData服务404错误求助

解决方案

核心原因

你观察到的HttpModGetDefRules返回NOTHING,本质是SAP ICM网关没有匹配到需要转发客户端证书的规则,有两个常见触发原因:

  1. Azure APIM传递客户端证书的方式不满足SAP ICM的校验规则,导致证书没有被识别为需要转发到应用层的身份凭证
  2. 请求路径大小写和SICF中激活的OData服务路径不匹配,触发SAP的404错误(SAP NetWeaver的路径是严格大小写敏感的,部分浏览器会自动修正大小写差异,所以浏览器访问正常)

分步配置

1. 证书上传到APIM

先将你的自签名客户端证书PFX文件上传到APIM:

  • 进入APIM实例控制台,依次打开「安全」→「证书」→「添加」
  • 选择「证书」类型,上传PFX文件,输入证书密码,完成上传后复制证书的指纹

2. 配置APIM入站策略

不需要手动处理byte数组,直接用指纹引用证书的方式更稳定,推荐配置如下:

<policies>
    <inbound>
        <base />
        <!-- 附加客户端证书到TLS请求 -->
        <authentication-certificate thumbprint="替换为你上传的证书指纹" />
        <!-- 适配SAP ICM的证书识别规则,补充证书头 -->
        <set-header name="X-Client-Cert" exists-action="override">
            @(context.Request.Certificate != null ? Convert.ToBase64String(context.Request.Certificate.RawData) : String.Empty)
        </set-header>
        <!-- 保持和浏览器请求头一致 -->
        <set-header name="User-Agent" exists-action="override">
            <value>Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36</value>
        </set-header>
    </inbound>
    <backend>
        <base />
    </backend>
    <outbound>
        <base />
    </outbound>
    <on-error>
        <base />
    </on-error>
</policies>

如果你坚持要用byteCertificate变量的方式,可在入站策略最上方添加变量赋值:

<!-- 先将PFX文件转为Base64字符串,本地用PowerShell执行:[Convert]::ToBase64String([IO.File]::ReadAllBytes("C:\你的证书路径.pfx")) -->
<set-variable name="byteCertificate" value="@(Convert.FromBase64String("替换为PFX转成的Base64字符串"))" />
<authentication-certificate body="@(context.Variables.GetValueOrDefault<byte[]>("byteCertificate"))" password="你的证书密码" />

3. SAP侧校验

  • 事务码SICF检查OData服务路径,确保和APIM请求的路径完全一致,包括大小写
  • 事务码SMICM查看ICM参数icm/HTTPS/verify_client,确认值为1或2(开启客户端证书校验)
  • 进入对应OData服务的SICF配置页,「登录」选项卡下勾选「使用SSL证书登录」

验证

配置完成后用APIM的测试控制台发起请求,查看SAP ICM日志,HttpModGetDefRules返回COPY_CERT_TO_MPI (1)就表示配置生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 03:06:02