Я пытаюсь подключиться к испытательному стенду 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 кратко упоминается: «Для проверки подлинности защищенного сервера вам потребуется корневой сертификат Verisign Class 3 Public Primary Certification Authority, доступный бесплатно на сайте www.verisign.com (сертификат также распространяется с большинством веб-сайтов). браузеры). – Возможно, проблема в этом?
Обновление В соответствии с запросом я изменил значения ошибок, а также сам $socket, var_dump, все они равны false/0. В документах fsockopen PHP говорится: "Если значение, возвращаемое в errno, равно 0, а функция возвращает FALSE, это указывает на то, что ошибка произошла до вызова connect(). Скорее всего, это связано с проблемой инициализации сокета."
Любая помощь будет принята с благодарностью.
$errno
и$errst
? - person Stefan Gehrig   schedule 31.03.2011openssl s_client -ssl3 -crlf -connect testbed-epp.nominet.org.uk:700
на консоли? - person Stefan Gehrig   schedule 31.03.2011openssl
не указывает на проблему с сертификатом. Соединения останавливаются еще до обмена сертификатами. Возможно, вам следует попробовать подключиться к обычному веб-сайту SSL сssl://maps.google.com
на порту 443. - person Stefan Gehrig   schedule 31.03.2011