![](/img/trans.png)
[英]Implementing Swedish Swish payment - C# - Could not create SSL/TLS secure channel - Certificate signing request
[英]Implementing Swish payment C# - Only on Azure - Sending client certificate - The request was aborted: Could not create SSL/TLS secure channel
在写这个问题之前,我已经经历了很多问题和答案,但我似乎无法找到解决方案。 我想要做的是将应用程序托管为需要调用 Swish API 的 Azure 应用服务。
请参阅此线程以了解我的实现如何在本地运行,该线程工作正常:
带有 X509Certificate2 的 C# HttpClient - WebException:请求被中止:无法创建 SSL/TLS 安全通道
来自 Azure 的系统诊断日志:
我已经尝试了 Microsoft 论坛和 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
我们能够在 Azure Web 应用程序中完成这项工作。 诀窍是 appSetting WEBSITE_LOAD_CERTIFICATES
并在 Azure 门户中上传所有 Swish 证书。 也就是说,来自 Swish 的.pfx
文件包含三个证书,其中两个是根证书。 因此,我们导出根证书并在 TLS/SSL 设置 -> 公钥证书 (.cer) 下上传.cer
文件,然后它开始工作。 您还需要将它们上传到所有部署槽,因为证书不会自动复制到槽中。
根据您的情况,我还通过将证书文件添加到资源文件并通过以下代码片段构建X509Certificate2
实例来进行检查:
var certBytes=(byte[])ResourceManager.GetObject("Swish_Certificate");
var certificate = new X509Certificate2(certBytes, "swish");
根据我的测试,我假设您无法在 Azure Web App 上实现 Swish 支付。 此外,您可以在此处添加对 azure web 应用程序的反馈。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.