Sage Pay сегодня завершил освобождение сайтов, использующих SSL3 при общении со своими серверами оплаты/авторизации. TLSv1 теперь требуется.Классический сервер ASP/IIS6/Win2003 не может связываться с сервером TLS
У нас есть окно Windows Server 2003 с IIS6 и два сайта, написанных (к сожалению) в классическом ASP. Ящик был исправлен/ключи реестра обновлены для смягчения против POODLE, и различные онлайн-шашки поддерживают это. Сервер должен использовать ТОЛЬКО TLS.
Однако при попытке авторизации транзакции Sage Pay с использованием WinHttp.WinHttpRequest.5.1 и POST попытка немедленно прекращается. Единственная ошибка, возвращаемая WinHttpRequest, - «-2147483638 - WinHttp.WinHttpRequest - данные, необходимые для завершения этой операции, пока недоступны».
Internet Explorer на том же сервере также не может получить доступ к интерфейсам администрирования Sage Pay, размещенным на тех же URL-адресах. Это, несмотря на то, что SSLv2 и SSLv3 отключены в Internet Options. Опять же, TLSv1 должен быть единственным вариантом, доступным для НИЧЕГО на коробке.
Не имеет значения, какие тайм-ауты или варианты я накладываю на объект WinHttp - он не так быстро, что почти так же, как он даже не пытался.
Я проверил, что сервер, о котором идет речь, может связываться с серверами Sage Pay, используя curl. curl работает либо без указанного протокола (он использует TLS), либо вручную указывая - и не будет, когда указано SSL2 или 3 - как и ожидалось.
Если это работает, то почему ничего другого - когда каждый бит конфигурации сервера говорит, что он должен?
Вот небольшой пример кода, который возвращает Вышеназванную ошибку WinHttpRequest:
<%
VSPServer = "https://test.sagepay.com/showpost/showpost.asp"
Set objHTTP = Server.CreateObject("WinHttp.WinHttprequest.5.1")
On Error Resume Next
objHTTP.Open "POST",CStr(VSPServer),False
objHTTP.Send "Hello"
If Err.Number <> 0 Then
Response.Write "Status: " & objHTTP.Status & "<p>"
Response.Write Err.Number & " - " & Err.Source & " - " & Err.Description
End If
On Error Goto 0
Set objHTTP = Nothing
%>
Если значение False изменяется на True (для запуска этого асинхра) в строке objHTTP.Open, скрипт ничего не возвращает. Этот скрипт работал до того, как Sage Pay вошел во второй половине дня.
Пожалуйста, [покажите нам свой код] (http://stackoverflow.com/help/mcve). – GoBusto
Возможно, это связано с [WinHttp TLS соединение в классическом asp] (http://stackoverflow.com/q/29098446/692942) – Lankymart
Прежде чем мы сможем помочь, было бы очень полезно увидеть код, который отправляет запрос SagePay, иначе мы просто догадываемся. – Lankymart