首先,这个问题与APIM的客户有关,而与后端的APIM无关。
我已成功设置入站处理策略,以便使用when condition =“@(context.Request.Certificate.Thumbprint!=”XXXXXXX“)方法检查客户端证书。
在此阶段,客户端正在使用来自其中一个Microsoft受信任证书的购买证书。
客户现在想要更改为提供自签名证书。
发送自签名证书后,当提交给策略时,context.request.certificate对象显示为null。
我已将相同的证书加载到X509Certificate2对象中(通过导入),并返回无效的根CA错误,这是可以理解的,因为我没有加载到我的可信CA存储中。
此时的信息,证书包含CA,中间和客户端证书。
如果我只从p7b文件中导出客户端证书并将其加载到X509Certificate2对象中,则它按预期工作 - 因此X509Certificate2对象不会强制进行链检查,我想这将以编程方式完成。
我遇到了skipCertificateChainValidation
属性,但文档的上下文表明它是APIM后端呼叫的。