У меня есть сервер FreeBSD FreeBSD hotspot.brightlan.net 6.2-RELEASE-p6 FreeBSD 6.2-RELEASE-p6 # 0: сб июл 21 13:42:25 EDT 2007Ошибка: 14090086: SSL-процедуры: SSL3_GET_SERVER_CERTIFICATE: проверка сертификата завершена
На этом сервере у меня есть приложение в php с помощью curl, которое подключается к Authorize.net через их api. Недавно они обновили свои SSL-сертификаты для поддержки sha256, и поэтому сертификат SSL также изменился. После этого изменения приложение не подключается. Если я делаю curl_setopt ($ ch, CURLOPT_SSL_VERIFYPEER, FALSE) , он успешно соединяется, но я хочу пойти с полной проверкой сервера во время подтверждения SSL. Я заметил, что тот же подключается с другого Linux-сервера ubuntu после обновления файла сертификата ca, указав параметр CURLOPT_CAINFO.
Но на этом FreeBSD он не подключается. Я также отметил, что сертификат SSL выдается под подстановочным знаком i.e. * .authorize.net. Из-за этого на сервере ubuntu также пришлось отключить CURLOPT_SSL_VERIFYHOST. Но на этом сервере FreeBSD он просто не работает с этой опцией. Сервер немного устарел с версией php PHP 4.4.7 (cgi-fcgi) (построено: 4 мая 2007 13:35:10)
Любая помощь приветствуется.
Спасибо за ваш ответ. Я знаю его старую систему, и я понял, что мне нужно обновить openssl. Я тоже это сделал, и отлично работает на аналогичной (тестовой) установке. Теперь сложность заключается в том, чтобы связать это только с завитки, чтобы он не нарушал других. например, он прерывает службу ssh, если я ее свяжу. Я не хочу нарушать работу в производственной системе. –
Существуют варианты сборки при компиляции openssl для указания пути установки, чтобы он не конфликтует с установкой системы. И у curl, похоже, есть аналогичные опции, где вы можете указать путь к используемой библиотеке SSL. Если вы их объедините, вы можете построить завиток с помощью специального SSL, который не выводит на локальную установку. Ознакомьтесь с соответствующими дистрибутивами источников для таких файлов, как INSTALL, которые обычно описывают этот процесс более подробно. –