实施Swish支付C# - 仅在Azure上 - 发送客户端证书 - 请求被中止:无法创建SSL/TLS安全通道
在写这个问题之前,我已经经历了很多问题和答案,但我似乎无法找到解决方案。我想要做的是将应用程序作为需要调用Swish API的Azure应用程序服务来托管。实施Swish支付C# - 仅在Azure上 - 发送客户端证书 - 请求被中止:无法创建SSL/TLS安全通道
请参阅此线程如何我执行本地它运行正常工作:
系统诊断日志从Azure中:
我试图从微软论坛中的解决方案和SO但似乎没有伎俩:
//Tested both, none of them work
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12
//ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls11
由于很多的问题都是基于访问外部服务,而不是发送客户端证书的复杂性上升一点为好。
我所做的是在Azure导入测试证书的SSL certificates
选项卡上。由于.p12
和.pfx
都是PKCS#12文件,我只是将其重命名为.p12
-文件。该应用程序运行为B1 Basic
应用程序服务计划,因此大多数功能应该存在。
https://stackoverflow.com/a/6821061/3850405
我自己也尝试这个指南将证书添加到Azure的证书存储 - >应用程序设置 - >应用程序设置:
https://azure.microsoft.com/en-us/blog/using-certificates-in-azure-websites-applications/
当这个没有工作,我试过在我的应用程序中添加WEBSITE_LOAD_CERTIFICATES
到appSettings
,但它导致HTTP 503.
Swish证书和英文指南:
https://www.getswish.se/content/uploads/2015/06/Guide-Testverktyg_20151210.zip
根据您的情况,我也通过添加证书文件到一个资源文件检查,并通过下面的代码片段构建X509Certificate2
实例:
var certBytes=(byte[])ResourceManager.GetObject("Swish_Certificate");
var certificate = new X509Certificate2(certBytes, "swish");
按我的测试,我认为您无法在Azure Web App上实施Swish付款。此外,您可以添加您的反馈天蓝色的网络应用here。
据我所知,您上传到您的网络应用程序的证书将只安装到个人证书商店。当我遵循你的swish证书指南时,我发现它将被存储到'受信任的根证书颁发机构'中,我认为它可能是原因。 –
@ Bruce-MSFT是的,我认为这也是问题所在。现在将其作为“虚拟机”运行,并且工作正常。如果可以将其作为“应用程序服务”来完成,那将会很好。 – Ogglas