Azure API管理不验证证书链

时间:2020-10-20 17:17:10

标签: azure ssl certificate azure-api-management

我想使用Azure API管理资源和客户端证书来保护我的服务。

根据以下documentation,我将自签名的根证书作为根证书上传到CA证书中。

内部API政策中,我要求进行证书验证:

        <when condition="@(!context.Request.Certificate.VerifyNoRevocation())">
            <return-response>
                <set-status code="403" reason="Not verified certificate" />
            </return-response>
        </when>

根CA不是客户端证书的颁发者:我有两个中间CA: Root => Inter1 => Inter2 => Client

因此,我使用curl提供了链条。

curl --cert-type pem --cacert full-chain.pem --cert user.crt --key user.key https://my-api-management-url -i

但是APIM似乎没有使用提供的链来针对上载的根CA对其进行验证。我唯一可以通过支票的时间是当我将Inter2作为CA证书放入APIM中。

有一个设置允许APIM使用提供的链,或者APIM只能检查CA是否是客户端证书的颁发者?

有关信息,当我尝试使用相同的Root CA和相同的curl命令(当然只是更改URL)调用NginX服务器时,该链是有效的。

1 个答案:

答案 0 :(得分:0)

您必须确保根证书和中间证书分别上传。另外您的主机证书已激活支票以协商证书,这将启用您的验证政策