客戶端和伺服器無法通信,因為它們在 Windows Server Web 2008 上沒有通用算法
我正在開發一個 ASP.Net WebForms 應用程序。我們正在使用PayFort 的 Start API進行支付流程。該應用程序在我們的本地電腦(Windows 10)上執行良好,但是當我們嘗試在我們的部署伺服器(Windows Server Web 2008)上使用他們的 API 進行付款時,它顯示以下錯誤。
客戶端和伺服器無法通信,因為它們沒有共同的算法。
他們網頁上的文件(PayFort Start 和 SSL/TLS)聲明他們使用 Tls1.2 進行通信。他們的 API 已經包含使用 Tls1.2 作為安全協議的程式碼
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
我們在 .Net framework 4.5 上建構了應用程序,因為
Tls1.2
僅受 .Net 4.5 或更高版本支持。不用說,我們的伺服器安裝了 .Net Framework 4.5。我們還在 Windows 系統資料庫中添加了 Tls1.1 和 Tls1.2 的系統資料庫值
使用SSL Labs 工具,我們還確認兩個伺服器(我們的伺服器和 PayFort 的 API 伺服器)支持至少兩個密碼套件( https://api.start.payfort.com )
PayFort 的 API 伺服器支持的密碼套件 (綠色輪廓是我們伺服器常見的
密碼套件) 我們的伺服器支持的密碼套件
我還使用了Nartac IIS 加密軟體,它是將以下資訊顯示為
我不確定它是否與問題有關,但這裡是我們伺服器中安裝的 SSL 證書的詳細資訊 誰能指出我們做錯了什麼以及我們應該怎麼做才能進行交流使用所需的伺服器並從部署在我們伺服器上的應用程序付款,因為我們在本地機器上做得很好。
您使用的是 Windows 2008 非 R2 嗎?Windows 2008 不支持 TLS 1.2。如果您需要 TLS 1.2 支持,您必須升級到 Windows 2008 R2 或更高版本
您可以在此處查看不同版本的 Windows 的 TLS 支持:http: //blogs.msdn.com/b/kaushal/archive/2011/10/02/support-for-ssl-tls-protocols-on-windows.aspx