我想使用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服务器时,该链是有效的。
答案 0 :(得分:0)
您必须确保根证书和中间证书分别上传。另外您的主机证书已激活支票以协商证书,这将启用您的验证政策