我正在尝试从PHP连接到.me注册商EPP OT& E服务器但没有成功。 我正在使用php-epp库(https://github.com/centralnic/php-epp),但问题是我无法打开连接。
我可以使用以下命令打开连接(或至少看起来如此):
openssl s_client -connect ote1.meregistry.net:700 -cert certificate.crt -key privateKey.key -CAfile PCA-3.pem -showcerts -state
返回:
已连接(00000003)
SSL_connect:before / connect initialization
SSL_connect:SSLv2 / v3写客户端问候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操作失败,代码为1. OpenSSL 错误消息:错误:14094410:SSL例程:SSL3_READ_BYTES:sslv3 警报握手失败
有什么建议吗?
由于
答案 0 :(得分:1)
我发现了问题:我使用的证书无效。
此外,对于某些服务器,命令openssl s_client需要一个标志 -no_tls1 ,允许命令正确执行。
希望它对其他人有用!