2013-07-04 2 views
0

Я пытаюсь подключиться к .me регистратору EPP OT & E сервер от PHP без успеха. Я использую php-epp library (https://github.com/centralnic/php-epp), но проблема в том, что я не могу открыть соединение.Execute openssl s_client с php

Я могу открыть соединение (или, по крайней мере, кажется) с помощью следующей команды:

openssl s_client -connect ote1.meregistry.net:700 -cert certificate.crt -key privateKey.key -CAfile PCA-3.pem -showcerts -state 

Это возвращает:

CONNECTED(00000003)

SSL_connect:before/connect initialization

SSL_connect:SSLv2/v3 write client hello A

Как я могу воспроизвести эту команду в PHP? Я попытался это, но безуспешно:

$context = stream_context_create(); 
stream_context_set_option($context, 'ssl', 'local_cert', 'pemcertificate.pem'); 
stream_context_set_option($context, 'ssl', 'passphrase', ''); 
stream_context_set_option($context, 'ssl', 'cafile', 'PCA-3.pem'); 
stream_context_set_option($context, 'ssl', 'verify_peer', false); 
stream_context_set_option($context, 'ssl', 'allow_self_signed', true); 
$epp = new Net_EPP_Client(); 
echo "\nConnecting.."; 
$epp->connect('ote1.meregistry.net', 700, 20, true, $context); 

Я получаю эту ошибку:

stream_socket_client(): SSL operation failed with code 1. OpenSSL Error messages: error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure

Любые советы?

Благодаря

ответ

1

Я нашел проблему: сертификат я использовал не был действительным.

Кроме того, для некоторых серверов команде openssl s_client нужен флаг -no_tls1, который позволяет команде выполнить правильно.

Надеюсь, это будет полезно для кого-то еще!

Смежные вопросы