Ошибка с fsockopen () и SSL, «Не удалось включить шифрование» - PullRequest
2 голосов
/ 31 марта 2011

Я пытаюсь подключиться к испытательному стенду Nominet EPP, но я получаю сообщение «Не удалось включить шифрование», что представляется редкой ошибкой без документированного решения или причины.

С линией:

$socket = fsockopen('ssl://testbed-epp.nominet.org.uk', 700, $errno, $errst, 10);

Точная ошибка, которую я получаю:

Warning: fsockopen() [function.fsockopen]: Failed to enable crypto in /path/classes/nominet_epp.class.php on line 53

Warning: fsockopen() [function.fsockopen]: unable to connect to ssl://testbed-epp.nominet.org.uk:700 (Unknown error) in /path/classes/nominet_epp.class.php on line 53

Насколько я могу судить, OpenSSL отлично работает с PHP, как показано в нашем phpinfo ():

OpenSSL support     enabled
OpenSSL Version     OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008

В документах Nominet кратко упоминается «Для проверки подлинности защищенного сервера вам потребуется корневой сертификат Public Primary Certification Authority общего уровня Verisign Class 3, доступный бесплатно на сайте www.verisign.com (сертификат также распространяется). с большинством веб-браузеров). - Возможно, это проблема?

Обновление В соответствии с запросом у меня есть var_dump'd значения ошибок, а также сам $ socket, все они имеют значение false / 0. fsockopen PHP docs заявляет " Если значение, возвращаемое в errno, равно 0, а функция вернула FALSE, это указывает на то, что ошибка произошла до вызова connect (). Это, скорее всего, связано с проблема при инициализации сокета."

Любая помощь будет принята с благодарностью.

1 Ответ

3 голосов
/ 03 апреля 2011

У меня была точно такая же проблема, и дело было в том, что брандмауэр Nominet не обновлялся с правильным IP-адресом.Когда вы настраиваете это в панели управления Nominet, вам нужно подождать час, чтобы их брандмауэры полностью обновились - как только это будет сделано, соединение работает нормально.

...