【发布时间】:2020-05-28 08:06:57
【问题描述】:
所以我关注这个链接:https://docs.microsoft.com/en-gb/azure/api-management/api-management-howto-mutual-certificates-for-clients。我添加了两个策略-
1)检查指纹(对于包含证书的传入请求)
<choose>
<when condition="@(context.Request.Certificate == null || !context.Request.Certificate.Verify() || context.Request.Certificate.Thumbprint != "DESIRED-THUMBPRINT-IN-UPPER-CASE")" >
<return-response>
<set-status code="403" reason="Invalid client certificate" />
</return-response>
</when>
</choose>
2)检查上传到 API 管理的证书的指纹(我在 APIM 的“证书”部分上传了一个自签名证书)
<choose>
<when condition="@(context.Request.Certificate == null || !context.Request.Certificate.Verify() || !context.Deployment.Certificates.Any(c => c.Value.Thumbprint == context.Request.Certificate.Thumbprint))" >
<return-response>
<set-status code="403" reason="Invalid client certificate" />
</return-response>
</when>
现在,当我尝试在 azure 中从 APIM 发送 get 请求时,我遇到了“403 invalid client certificate”的错误消息。在邮递员中,我也添加了证书,但是在发送 get 时遇到了同样的错误请求。
我使用 openssl 制作了自签名证书并将其转换为 .key、.crt 和 .pfx。我也阅读了其他相关主题,但我没有找到任何解决此问题的方法。我不知道我做错了还是我我错过了一些东西。请帮我解决这个问题。谢谢。
【问题讨论】:
标签: azure ssl postman azure-api-management client-certificates