2015-02-20 1 views
0

со вчерашнего дня в 1:30 вечера, два отдельно написанных приложений, имеющих доступ к шлюзу SagePay платежей и отчетности API Endpoint оба возвратил следующую ошибку:SagePay Протокол Нарушение Ошибка

The server committed a protocol violation. Section=ResponseStatusLine 

Это происходит в коде на точка

System.Net.HttpWebRequest.GetResponse() 

оплата приложений не изменился с 2009 года и была написана бывшим сотрудником и иронически планируется заменить в течение 3 недель. Приложение Reporting было написано в конце прошлого года и работает с момента создания до вчерашнего дня.

Я говорил с SagePay, и они советуют, что с их точки зрения ничего не произошло, и единственное, что я думал о недавнем отключении SSLv3 в прошлом месяце, но в то время, инструмент отчетности был изменен для использования TLS, и у меня есть проверил это сегодня, и он действительно использует TLS.

Можно ли пролить свет на то, что может вызвать это, пожалуйста?

спасибо.

+0

У меня также есть эта проблема со вчерашнего дня. Я говорил с SagePay, и они говорят, что это действительно связано с использованием SSLv3, хотя это было отключено в ноябре, а онлайн-инструменты показывают, что мы больше не используем его. Я дам вам знать, если я получу что-нибудь еще от SagePay. – louiser89

ответ

0

У нас та же проблема. Одно предложение добавить следующее в web.config:

<system.net> 
    <settings> 
     <httpWebRequest useUnsafeHeaderParsing="true" /> 
    </settings> 
</system.net> 

Это, по крайней мере, избежать нарушения протокола, но приводит к следующей ошибке для меня вместо того, чтобы:

Базовое соединение закрыто: Соединение был неожиданно закрыт.

Еще один момент, который меня интересует ваш комментарий, заключается в том, что мы можем воспроизвести эту ошибку только на серверах Windows 2003. В Windows 2008 он работает нормально. Я также воспроизвел это на своей машине Windows 7 dev, заставив ее подключиться через SSL3.

Я отключил SSL3 в Schannel для клиентских и серверных приложений, но мне интересно, если он по какой-либо причине пытается подключиться через SSL3, а не использовать TLS. Есть предположения?

+0

Я проверил это в скрипаче, и это действительно соединение с TLS, а не с SSL3. Единственное различие между соединением на Win2003 (которое не работает) и тем, что на Win7 (который работает), является шифром. Win7 использует AES, а Win2003 использует 3DES. Я пытаюсь выяснить у Sagepay, каковы их минимальные требования к шифру. –

0

Я только что поговорил с кем-то в SagePay об этом, который говорит, что это проблема с подключением с использованием SSLv3. Мы думали, что мы отключили это в ноябре прошлого года, но он сказал, что при использовании Windows Server 2003 он слышал, что иногда похоже, что SSLv3 отключен, но когда он доходит до последнего шага, он не делает этого для некоторых причина.

Я изучаю это сейчас с помощью наших серверов, но это может быть для вас тоже. не

1

OK - У меня есть исправление для этого :)

Пообщавшись SagePay, они больше не поддерживают шифрование Triple DES, AES только. По умолчанию Windows 2003 не будет использовать AES - следовательно, проблема.

Однако при установке исправления в этой статье: https://support.microsoft.com/kb/948963 он включит AES и устранит проблему.

Кстати, похоже, ссылку на исправление, описанное в этой статье сломана, но эта ссылка работает: http://hotfixv4.microsoft.com/Windows%20Server%202003/sp3/Fix192447/3790/free/351385_ENU_i386_zip.exe

Это требует перезагрузки, и вам нужно будет отключить все протоколы, кроме TLS1.0 в чтобы это работало.