【发布时间】:2017-08-16 16:43:00
【问题描述】:
我正在为我的网站设置自动部署管道,作为其中的一部分,我必须使用 VSTS RM 自动导入 Api。我在 VSTS 任务中使用自定义 PS 脚本实现了这一点。我已经使用 swagger url 导入了
即
Import-AzureRmApiManagementApi –Context $apimContext –SpecificationFormat 'swagger' –SpecificationUrl 'http://mywebapp.com/swagger/docs/v1' –Path 'apis'
为了提高安全性,我们实施了重定向由客户端证书保护的 http 请求 https。问题来了。
现在我们无法使用上述命令导入返回 403 禁止错误,因为 API 管理器没有绕过证书验证的选项。有什么办法可以解决这个问题?
即使我尝试使用特定证书调用 web 请求 url 并导入在我的本地机器上运行良好的 API。
$swaggerurl="https://mywebapp.org/swagger/docs/1" $cert=New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("xyz.cer") $test=Invoke-WebRequest -Uri "$swaggerurl" -Certificate $cert $test.statuscode
Import-AzureRmApiManagementApi --Context $apimContext --SpecificationFormat 'swagger' --SpecificationUrl 'http://mywebapp.com/swagger/docs/v1' --Path 'apis'
但不是在 VSTS Inline 电源外壳中。它不接受证书值并返回 403 禁止错误。
请告诉我如何解决这个问题?
问题:
1.由于在 swagger url 上验证 https 客户端证书,无法导入 API 管理器。
- VSTS 内联电源外壳不接受证书参数详细信息,即使我使用了正确的证书。同样的情况在本地机器上也有效。 VSTS 内联电源外壳是否有任何限制。
提前致谢。
【问题讨论】:
标签: azure-api-management azure-pipelines-build-task azure-pipelines-release-pipeline