2016-03-03 4 views
2

У меня возникли проблемы с установлением SSL-соединения. отображаетсяНе удается установить локальный файл цепочки сертификатов

Этих предупреждений:

Предупреждение: stream_socket_client() [function.stream-сокет-клиент]: Не удается установить локальный файл серта цепь `D: \ путь \ cert.pem '; Убедитесь, что ваши настройки cafile/capath содержат сведения о вашем сертификате и его эмитенте в D: \ path \ testSll.php в строке 23

Предупреждение: stream_socket_client() [function.stream-socket-client]: не удалось создать SSL в D: \ path \ testSll.php в строке 23

Предупреждение: stream_socket_client() [function.stream-socket-client]: Не удалось включить криптографию в D: \ path \ testSll.php в строке 23

Предупреждение: stream_socket_client() [function.stream-сокета клиента]: не удалось подключиться к SSL: //host.tld: 700 (неизвестная ошибка) в D: \ путь \ testSll.php на линии 23

Итак, я прочитал весь вопрос о «Не удалось установить локальный файл цепочки сертификатов», но весь ответ, который я нашел, не работал для меня.

Вот код, я использую:

$host = 'host.tld'; 
$port = 700; 

$cert = dirname(__FILE__).'\\cert.pem'; // 
$passe_phrase = 'pass'; 

$opts = array(
     'ssl'=>array(
      'local_cert' => $cert, 
      'passphrase' => $passe_phrase, 
      'verify_peer' => false 
     ) 
    ); 

$context = stream_context_create($opts); 

$fp = stream_socket_client('ssl://'.$host.':'.$port, $errno, $errstr, 30, STREAM_CLIENT_CONNECT, $context); 

if ($fp) { 
    echo "OK"; 
} else { 
    echo "ERROR: $errno - $errstr<br />\n"; 
} 

Сертификат является хорошим. Скрипт может получить доступ к файлу cert.pem.

Я не могу найти то, что здесь отсутствует.

PHP версия: 5.2.6

ответ

0

Вы должны смотреть на include details of your certificate and its issuer. В моем случае я случайно удалил заголовок файла. Когда я верну его обратно, сценарий успешно соединяется. До:

-----BEGIN CERTIFICATE----- 
MIIFCBG+gAwIBAg... 

После

Bag Attributes 
    friendlyName: ... 
    localKeyID: ... 
subject=... 
issuer=/C=US/... CN=Apple Worldwide Developer Relations Certification Authority 
-----BEGIN CERTIFICATE----- 
MIIFCBG+gAwIBAg... 
Смежные вопросы