我正在使用Zend Framework 1. *并且在执行时“stream_socket_enable_crypto”总是返回false。 Zend抛出异常这个异常:
"Unable to connect to HTTPS server through proxy could not negotiate secure connection."
我在之前的方法“stream_socket_enable_crypto”中尝试了以下所有加密类型,结果相同......
STREAM_CRYPTO_METHOD_SSLv2_CLIENT
STREAM_CRYPTO_METHOD_SSLv3_CLIENT
STREAM_CRYPTO_METHOD_SSLv23_CLIENT
STREAM_CRYPTO_METHOD_TLS_CLIENT
STREAM_CRYPTO_METHOD_SSLv2_SERVER
STREAM_CRYPTO_METHOD_SSLv3_SERVER
STREAM_CRYPTO_METHOD_SSLv23_SERVER
STREAM_CRYPTO_METHOD_TLS_SERVER
深入研究“connectHandshake”Zend方法,我看到我可以连接到代理,但不能通过代理连接到服务器。我对这个问题持续了很长时间,任何线索?
PHP 5.6版。*
答案 0 :(得分:1)
终于实现了PHP版本的问题。 在PHP 5.6中。*“verify_peer_name”默认更改为TRUE 。请参阅更改日志here。
将此属性设置为false可解决连接问题。
$adapter->setStreamContext(array(
'socket' => array(
// Bind local socket side to a specific interface
'bindto' => self::PROXY_HOST . ':' . self::PROXY_PORT
),
'ssl' => array(
'crypto_method' => STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT,
// Verify server side certificate,
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => false,
)
)
);
希望它可以帮助别人