我正在开发一个ASP.Net WebForms应用程序。我们正在使用PayFort的Start API进行支付处理。该应用程序在我们的本地机器(Windows 10)上运行良好,但当我们尝试在部署服务器(Windows Server Web 2008)上使用他们的API进行付款时,会出现以下错误。
我们使用了.Net框架4.5构建应用程序,因为只有.Net 4.5或更高版本支持Tls1.2。需要提到的是,我们的服务器已经安装了.Net Framework 4.5。
我们还在Windows注册表中添加了Tls1.1和Tls1.2的注册表值。
使用SSL Labs工具,我们还确认了至少有两个密码套件被两个服务器(我们的服务器和PayFort的API服务器)支持(https://api.start.payfort.com)。
PayFort的API服务器支持的密码套件 (绿色轮廓是与我们的服务器相同的)
我们的服务器支持的密码套件
我还使用了Nartac IIS crypto软件,它显示以下信息作为
我不确定它是否与问题有关,但这是我们服务器上安装的SSL证书的详细信息
请问有人能指出我们做错了什么,以及我们应该怎么做才能与所需的服务器通信并从部署在我们服务器上的应用程序进行付款,就像我们在本地机器上做的那样。
他们网页上的文档(PayFort Start and SSL/TLS)说明他们使用Tls1.2进行通信。他们的API已经包含了使用Tls1.2作为安全协议的代码。客户端和服务器无法通信,因为它们没有共同的算法。
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
我们使用了.Net框架4.5构建应用程序,因为只有.Net 4.5或更高版本支持Tls1.2。需要提到的是,我们的服务器已经安装了.Net Framework 4.5。
我们还在Windows注册表中添加了Tls1.1和Tls1.2的注册表值。
使用SSL Labs工具,我们还确认了至少有两个密码套件被两个服务器(我们的服务器和PayFort的API服务器)支持(https://api.start.payfort.com)。
PayFort的API服务器支持的密码套件 (绿色轮廓是与我们的服务器相同的)
我们的服务器支持的密码套件
我还使用了Nartac IIS crypto软件,它显示以下信息作为
最佳实践
我不确定它是否与问题有关,但这是我们服务器上安装的SSL证书的详细信息
请问有人能指出我们做错了什么,以及我们应该怎么做才能与所需的服务器通信并从部署在我们服务器上的应用程序进行付款,就像我们在本地机器上做的那样。
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12
来更改代码中的协议时,应用程序会崩溃,并显示相同的错误“客户端和服务器无法通信...”。请检查此处的demo,并分别单击Get Request
和Get Request Tls1.2
按钮。 - sohaiby