Я использую SOAP для связи с веб-сервисом. У меня это работает на багги-сервере, но все работает нормально. Теперь я запускаю это на более качественном сервере, но с разными конфигурациями.
На новом сервере я получаю ошибки аутентификации, я думаю, что проблема заключается в версии SSL curl. Где-то я думал, что это должен быть OpenSSL. Выполнение phpinfo()
на обоих серверах дает мне разницу.
Рабочий сервер: SSL Version OpenSSL/0.9.8b
.
Не работает сервер: SSL Version NSS/3.13.1.0
Сервер – это VPS с CentOS v6 и Parallels Plesk Panel 11.5
РЕДАКТИРОВАТЬ
Для веб-службы требуется проверка подлинности NTLM, поэтому я использую этот класс, который отлично работает на старом сервере. http://tcsoftware.net/blog/2011/08/php-soapclient-authentication/
Я решил свою проблему, но это не имело ничего общего с версией cURL SSL.
Мне пришлось изменить настройку cURL CURLOPT_HTTPAUTH
с CURLAUTH_ANY
на CURLAUTH_NTLM
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_NTLM);
Что странно, так как согласно http://nl3.php.net/curl_setopt? CURLAUTH_ANY
расшифровывается как:
CURLAUTH_BASIC | CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM